딕셔너리?

Hash와 같이 KeyValue를 한 쌍으로 갖는 파이썬 자료형이다. 딕셔너리는 리스트같이 순차적으로 탐색을 하지 않고 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'>, {})

 

사용은 위와 같이 괄호안에 자료형을 명시하고 선언하면 된다. intdefaultdict를 만들 때, 따로 Value를 선언하지 않을 경우 0으로 초기화 된다.

 

>>> dict_int[1]
0
>>> dict_int
defaultdict(<class 'int'>, {1: 0})

 

list의 경우 [], str의 경우 ' ', set의 경우 set()으로 각각 값이 초기화 된다.

 

 


생강강

,