본문 바로가기

프로그래밍

파이썬 딕셔너리 사용법 & 유용한 모듈

1. 딕셔너리란?

키/값 구조로 이루어진 자료구조, 평균  O(1)의 시간복잡도를 가지는 해시테이블로 구현되어 있다.

 

2. 사용법

1) 선언

a = {} #빈 딕셔너리 선언
a = {'key1': 'value1', 'key2': 'value2'}

2) 조회

>>> a['key2']
'value2'

>>> a.keys() #모든 key 조회
dict_keys(['key1', 'key2'])

>>> a.values() #모든 value 조회
dict_values(['value1', 'value2'])

>>> a.items() #모든 value 조회
dict_items([('key1', 'value1'), ('key2', 'value2')])

>>> 'key1' in a # key가 존재하는지 확인
True

3) 할당

>>> a['key3'] = 'value3'
>>> a
{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

4) 제거

>>> del a['key2']
>>> a
{'key1': 'value1', 'key3': 'value3'}

3. 유용한 모듈

1) defaultdict

파이썬의 딕셔너리는 기본적으로 존재하지 않는 키를 조회할 경우, 에러 메세지를 출력한다. 하지만 defaultdict 객체는 존재하지 않는 키를 조회할 경우, 처음 설정해준 기본 값을 딕셔너리의 value로 가지는 item(key+value)을 생성해준다. int, list뿐만 아니라 사용자 지정 자료형도 기본 값으로 설정 가능하다.

>>> import collections

>>> int_dict = collections.defaultdict(int)

>>> int_dict['C'] += 1
defaultdict(<class 'int'>, {'C': 0})

 

2) Counter

배열이나 문자열에서 각 항목이 등장한 횟수를 딕셔너리로 리턴하는 객체이다. most_common이라는 메소드를 사용해서 많이 등장한 n개의 항목을 순서대로 확인할 수 있다.

>>> import collections
>>> a = [1,1,2,3,3,3,3]
>>> b = collections.counter
>>> b
Counter({1: 2, 2: 1, 3: 4})

>>> b.most_common(2) #가장 많이 등장한 2개의 항목을 리턴
[(3, 4), (1, 2)]