Dictionary는 파이썬에서 지원하는 또 다른 데이터 타입으로, 항상 이전 글에서 포스팅했던 리스트와 튜플, 그리고 셋과 함께 설명되는 데이터 타입이다.
위의 예에서 볼 수 있듯이, 셋과 마찬가지로 딕셔너리도 중괄호를 이용해서 정의한다. 단, 각각의 원소에 대응하는 키와 함께 쌍으로 정의된다는 것이 특징이다.
데이터 타입의 이름 자체가 '사전'이라는 의미를 갖는다는 점에서, 키는 사전에서의 단어, 데이터는 단어에 대한 의미 또는 설명이라고 비유할 수 있다. 그래서, 같은 딕셔너리의 원소 중에서 키는 중복될 수 없지만, 데이터는 중복될 수 있다.
딕셔너리에 정의된 데이터는 위 그림과 같이, 매칭된 키 값을 이용해서 참조한다. 리스트나 튜플에서의 원소 참조 방식처럼 인덱싱에 의한 참조가 아닌 키 값에 의한 참조이므로, 딕셔너리는 내부 원소들의 순서를 유지하지 않는다는 점도 함께 기억하자.
만약, 딕셔너리에 정의하지 않는 키 값을 이용해서 데이터의 참조를 시도할 경우 위 그림과 같이 에러를 표시한다.
의도하지 않은 키 참조에 의해 에러가 발생되는 것이 싫다면, 위 그림처럼 get 함수를 사용하는 것도 하나의 방법이 될 수 있다. 같은 상황에서 get 함수를 사용하면, 위 그림의 결과와 같이 None이 반환된다.
딕셔너리도 리스트처럼 정의된 데이터의 수정이 가능하다. 위 그림은 정의된 딕셔너리에 데이터를 변경하거나 추가, 그리고 삭제하는 과정을 보여주고 있다. 여기서 주목할 부분은 같은 값의 키를 중복 허용하지 않는다는 딕셔너리의 특성 때문에, 이미 정의된 키 값을 이용해서 데이터를 할당하는 경우 대응되는 데이터의 값을 변경하고, 정의되지 않은 키 값을 이용해서 데이터를 할당하는 경우에는 딕셔너리에 새로운 원소로 추가된다는 점이다.
딕셔너리도 다른 데이터 타입으로 변환할 수 있다. 위 그림은 임의로 정의한 딕셔너리를 리스트로 변환하는 예를 보여주고 있는데, 그림에서 확인할 수 있듯이 일반적인 방법으로 딕셔너리 자체를 변환할 경우 키 값만이 변환된다.
딕셔너리에서 키 값만을 변환하거나, 데이터만을 변환하는 등.. 변환 대상을 임의로 선택할 수 있는데, 위 그림과 같이 keys() 또는 values() 함수를 이용하면 원하는 대상을 선택적으로 변환할 수 있다. 물론, items()를 이용하면 딕셔너리의 모든 원소를 변환할 수 있으나, 매칭되는 키와 데이터를 각각 개별적인 튜플로 묶어주는 것을 주의하자.
'Programming > Python' 카테고리의 다른 글
Python: Function (1) (0) | 2021.01.12 |
---|---|
Python: Comprehension (0) | 2021.01.05 |
Python: Set (0) | 2021.01.02 |
Python: Tuple (0) | 2021.01.01 |
Python: List (0) | 2020.12.17 |