
이번에는 파이썬의 기본 자료형 중 딕셔너리(dictionary)에 대해서 알아보겠습니다! :)
딕셔너리 (dictionary)
딕셔너리는 대응관계를 나타내기 위해 사용합니다. 그러므로, Key-Valuye를 한 쌍으로 저장하게 됩니다.
딕셔너리는 연관배열(associative array) 또는 해시(Hash)라고도 불립니다.
딕셔너리는 앞서 배운 리스트(list)와 튜플(tuple) 처럼 순차적으로 요소 값을 접근하는 것이 아니라,
key 값을 통해서 value 값에 접근하는 방식으로 구성됩니다.
딕셔너리 생성
>>> d = {"key1" : "value1", "key2" : "value2"}
딕셔너리를 생성할 때 주의하셔야 하는 점은, key 값에는 변하지 않는 값을 사용해야 한다는 것입니다.
그러므로 key 값으로 변하지 않는 튜플(tuple)은 사용 가능하지만, 변할 수 있는 리스트(list)는 사용할 수 없습니다.
반면에 value 값으로는 그 어떠한 값도 사용할 수 있습니다.
딕셔너리 연산
1. 값 삽입
>>> d = {"key1":"value1"}
>>> d["key2"] = "value2"
>>> d
# {"key1":"value1", "key2":"value2"}
딕셔너리에 값을 삽입할 때 주의하셔야 할 것은 key 값이 중복되면 마지막으로 삽입한 값을 제외한 모든 value 값을 무시한다는 것입니다.
딕셔너리에는 동일한 key 값이 2개 이상 존재할 수 없습니다.
2. 값 삭제
딕셔너리에서 값 삭제는 리스트(list)와 튜플(tuple)과 동일하게 del 을 사용합니다.
key 값만 삭제되는 것이 아니라, key-value 쌍이 함께 삭제됩니다.
>>> d = {"key1":"value1", "key2":"value2"}
>>> del d["key1"]
>>> d
# {"key2":"value2"}
3. value 값 구하기
딕셔너리에서는 value 값을 구하는 두가지 방법이 있습니다.
첫 번째 방법으로는, key 값에 직접 접근해서 value 를 구하는 방법입니다.
해당 방법을 사용했을 때, key 값이 존재하지 않는 경우, key 오류가 발생합니다.
>>> d = {"k1ey1", "value1"}
>>> d["key1"]
# "value1"
>>> d["key2"]
# key 오류
두 번째 방법으로는 get() 함수를 사용하는 방법입니다.
get() 함수의 매개변수로 key 값을 전달하면, 해당 key 값의 value 값을 반환합니다.
첫 번째 방법과 다른 점은, key 값이 없는 경우 None을 반환한다는 점입니다.
또한 key 값이 없는 경우 None 대신 반환할 기본 값을 지정할 수 있습니다.
>>> d = {"key1":"value1"}
>>> d.get("key1")
# "value1"
>>> d.get("key2")
# None
>>> d.get("key2", "hello world")
# "hello world"
4. 기타 함수
- keys() : 해당 딕셔너리의 key 값들만 모아서 dict_keys 객체를 반환합니다.
- values() : 해당 딕셔너리의 value 값들만 모아서 dict_values 객체를 반환합니다.
- items() : 해당 딕셔너리의 (key, value) 튜플을 원소로 가지고 있는 dict_items 객체를 반환합니다.
- clear() : 딕셔너리의 모든 key-value 쌍을 지웁니다. 빈 딕셔너리가 반환됩니다.
- "key" in d : "key" 값을 d 딕셔너리가 key 값으로 보유하고 있는지 확인합니다. 보유하고 있는 경우 True, 보유하지 않는 경우 False 를 반환합니다.
※ dict_keys, dict_values, dict_items 객체
파이썬 2.7 까지는 리스트(list)를 결과로 반환했습니다.
하지만 메모리 낭비를 줄이기 위해 이후 버전부터는 dict_keys, dict_values, dict_items 객체를 결과로 반환하게 되었습니다.
리스트(list)와 사용법은 유사하지만, 리스트(list)의 고유 함수인 append(), insert(), pop(), remove(), sort() 는 사용할 수 없습니다.
결과를 리스트로 사용하고 싶으면 list(d.keys()) 와 같은 방법으로 사용할 수 있습니다.
>>> d = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
>>> d.keys()
# dict_keys(['k1', 'k2', 'k3'])
>>> d.values()
# dict_values(['v1', 'v2', 'v3'])
>>> d.items()
# dict_items([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])
>>> list(d.keys())
# ['k1', 'k2', 'k3']
해당 게시물은 <점프 투 파이썬>을 읽고 제 나름대로 정리한 내용입니다!
더 구체적인 정보나, 추가적인 내용을 확인하고 싶으시면 <점프 투 파이썬>을 참고해주시기 바랍니다.
잘못된 부분 지적이나 피드백은 언제든지 환영입니다.
감사합니다 :)
'필기 노트 > Python 기초' 카테고리의 다른 글
[Python 기초] 기본 자료형 : 불(bool) (0) | 2020.07.10 |
---|---|
[Python 기초] 기본 자료형 : 집합 (set) (0) | 2020.07.10 |
[Python 기초] 기본 자료형 : 튜플 (tuple) (0) | 2020.06.25 |
[Python 기초] 기본 자료형 : 리스트 (list) (0) | 2020.06.24 |
[Python 기초] 기본 자료형 : 숫자형(number), 문자열(string) (0) | 2020.06.22 |
댓글