Coding Diary.

(파이썬) 딕셔너리(dictionary)와 동일성 연산자 is, is not, get 메소드 복합 데이터 구조 알아보기 본문

Coding/Python

(파이썬) 딕셔너리(dictionary)와 동일성 연산자 is, is not, get 메소드 복합 데이터 구조 알아보기

life-of-nomad 2024. 6. 5. 13:22
728x90
반응형
지난 글에서 파이썬 데이터 구조 유형 중 하나인 세트(set)에 대해 알아보았습니다. 세트는 단순한 데이터 구조이며 고유 요소를 수집하는 한 가지 주요 용도가 있습니다. 이에 반해 또 다른 데이터 구조 유형인 딕셔너리는 활용성이 더 높습니다. 이번 글에서는 딕셔너리 유형에 대해 알아보겠습니다.

 

🔻(참고)데이터 구조 유형 튜플과 세트🔻

 

(파이썬) 데이터 구조 유형 중 튜플(tuple)과 세트(set) 개념 쉽게 알아보기

저번 글에서는 데이터 구조 유형 중 리스트에 대해 알아보았습니다. 이번 글에서는 튜플과 세트에 대해 알아보겠습니다.  🔻(참고)리스트🔻 (파이썬) 데이터 구조의 유형 중 가장 많이 쓰이

life-of-nomad.tistory.com

1. 딕셔너리 

  • 딕셔너리는 값들에 대한 고유한 키들의 매핑을 저장하는 변형가능한 (mutable) 데이터 유형입니다. 
  • 리스트와 세트와 같이 단일 객체를 저장하는 대신 딕셔너리는 요소, 키(key) 및 값(values)의 쌍을 저장합니다. 
elements = {"hydrogen":1, "helium": 2, "carbon":6}
  • 위의 예시에서는 키가 요소 이름이고 해당 값이 해당 원자 번호인 딕셔너리를 정의합니다. 
{key1:value1, key2:value2, key3:value3, key4:value4, ...}
  • 딕셔너리는 변형가능(mutable) 하지만 키는 문자열, 정수 또는 튜플처럼 변형가능하지 않은(immutable) 한 유형이어야 합니다. 
  • 또한, 딕셔너리에 있는 모든 키가 같은 유형일 필요도 없습니다. 
  • 예를 들어 다음의 딕셔너리는 전혀 문제 없이 유효합니다.
random_dict = {"abc": 1, 5: "hello"}
  • 키를 묶는 대괄호[]를 사용하여 딕셔너리에서 값을 조회할 수 있습니다. 
print(elements["helium"])
>>> 2
  • 또한, 새로운 요소를 딕셔너리에 삽입할 수도 있습니다.
elements["lithium"] = 3

print(elements)
>>> {'hydrogen': 1, 'carbon': 6, 'helium': 2, 'lithium': 3}
  • 이는 딕셔너리가 변형가능하다는 (mutable) 점을 보여주고 있습니다.
  • 저번 글에서 in 을 사용하여 리스트나 세트에 어떤 요소가 있는지 검사할 수 있다고 했습니다. 
  • 딕셔너리 역시 get 메소드를 사용하여 값을 검색할 수 있습니다.
  • 특히, 키가 없을 때는 None을 리턴합니다.
print("carbon" in elements)
print(elements.get("dilithium"))

>>> True
>>> None
  • carbon은 딕셔너리에 있기 때문에 True가 리턴되고, dilithium은 딕셔너리에 없으므로 get이 None을 리턴합니다. 

 

2. 동일성 연산자

  • is 연산자를 사용하여 키가 None을 리턴했는지 검사할 수 있습니다. 
  • is not 을 사용하면 그 반대의 경우를 검사할 수 있습니다.
    • is : 양쪽이 동일한지 계산
    • is not : 양쪽이 동일하지 않은지 계산
n = elements.get("dilithium")
print(n is None)
print(n is not None)

>>> True
>>> False

 

 

3. 복합 데이터 구조

  • 딕셔너리 값들에 키를 매핑할 수도 있습니다.
elements = {"hydrogen": {"number": 1, "weight": 1.00794, "symbol": "H"},
           "helium": {"number": 2, "weight": 4.002602, "symbol": "He"}}
  • 또한 위의 중첩된 딕셔너리에 있는 요소에 엑세스할 수 있습니다.
print(elements["helium"])
print(elements["hydrogen"]["weight"]

>>> {"number": 2, "symbol": "He", "weight": 4.002602}
>>> 1.00794
print(elements.get("unobtainium", "There\'s no such element!"))
>>> There's no such element!
  • 딕셔너리 요소에 새로운 키를 추가할 수도 있습니다.
oxygen = {"number":8, "weight":15.999, "symbol":"0"}
elements["oxygen"] = oxygen
print("elements = ", elements)

>>> elements =  {"hydrogen": {"number": 1, "weight": 1.00794, "symbol": 'H'},
                 "helium": {"number": 2, "weight": 4.002602, "symbol": "He"},
                 "oxygen": {"number": 8, "weight": 15.999, "symbol": "O"}}
728x90
반응형