딕셔너리?
Hash와 같이 Key와 Value를 한 쌍으로 갖는 파이썬 자료형이다. 딕셔너리는 리스트같이 순차적으로 탐색을 하지 않고 Key를 통해 그에 대한 Value를 얻는다.
>>> ginger = {'name': 'kang', 'age': 26, 'gender': 'male'}
딕셔너리의 기본적인 형태이다. 위와 같이 {Key : Value}의 형태를 가진다. Value에는 문자열, 숫자 뿐만 아니라 리스트, 튜플 등아무 값이나 들어갈 수 있다. Key의 경우 튜플은 가능하지만 리스트 자료형은 들어갈 수 없다. 즉, Key는 불변의 값을 가져야 하기 때문에 값이 바뀌는 리스트의 경우는 Key가 될 수 없다.
딕셔너리에 값을 추가하고 싶을 때는 dict[Key값] : Value값 의 형태로 넣어준다. 괄호안에 넣어준 값이 Key가 되고 그를 통해 Value를 얻을 수 있다.
>>> dict = {}
>>> dict[1] = 'first'
>>> dict['movie'] = 'lalaland'
>>> dict
{1: 'first', 'movie': 'lalaland'}
>>> dict['movie']
'lalaland'
값을 삭제할 때는 del을 사용한다. del dict[Key값]
>>> del dict[1]
>>> dict
{'movie': 'lalaland'}
딕셔너리 함수
keys
딕셔너리의 Key들을 모아 dict_keys객체로 돌려준다.
>>> dict = {}
>>> dict['Korea'] = 'Seoul'
>>> dict['Japan'] = 'Tokyo'
>>> dict['UK'] = 'London'
>>> dict.keys()
dict_keys(['Korea', 'Japan', 'UK'])
values
딕셔너리의 Value들을 dict_values객체로 돌려준다.
>>> dict = {'Korea': 'Seoul', 'Japan': 'Tokyo', 'UK': 'London'}
>>> dict.values()
dict_values(['Seoul', 'Tokyo', 'London'])
get
Key를 통해 Value를 얻는다. 해당되는 Key가 없을 경우 None을 반환한다.
>>> dict.get('Korea')
'Seoul'
>>> dict.get('Japan')
'Tokyo'
>>> dict.get('China')
None
아래와 같이 Key가 딕셔너리에 있는지 바로 확인할 수 있다.
>>> dict = {'Korea': 'Seoul', 'Japan': 'Tokyo', 'UK': 'London'}
>>> 'Korea' in dict
True
>>> 'name' in dict
False
defaultdict
defaultdict는 딕셔너리와 거의 유사하지만 초기 Value값을 정해주는 점이 다르다.
>>> from collections import defaultdict
collections에서 defaultdict를 import해준다.
>>> dict_int = defaultdict(int)
>>> dict_int
defaultdict(<class 'int'>, {})
사용은 위와 같이 괄호안에 자료형을 명시하고 선언하면 된다. int로 defaultdict를 만들 때, 따로 Value를 선언하지 않을 경우 0으로 초기화 된다.
>>> dict_int[1]
0
>>> dict_int
defaultdict(<class 'int'>, {1: 0})
list의 경우 [], str의 경우 ' ', set의 경우 set()으로 각각 값이 초기화 된다.
'Python' 카테고리의 다른 글
[Python] 트리 순회 알고리즘 (0) | 2020.08.21 |
---|---|
[Python] 이진 탐색 트리(Binary Search Tree) (12) | 2020.08.19 |
[Python] 내장함수 enumerate 사용법 (0) | 2020.04.16 |
[Python] LRU(Least Recently Used) 알고리즘 (0) | 2020.04.15 |