파이썬에서 dictionary를 사용할 때,
존재하지 않는 key에 대해 접근하게 되는 경우 발생하는 오류를 막기위해 dictionary를 초기화 해주어야 한다.
나는 보통 이런 방법으로 초기화를 진행했었는데,
a = dict()
for key in keys:
a[key] = a.get(key, 초기화값)
setdefault를 이용한 방법도 있다.
a = dict()
for key in keys:
a.setdefault(key,초기화값)
여기서 defaultdict을 이용하는 방법도 있는데, 이 defaultdict을 이용하면
훨씬 간단하게 초기화를 진행할 수 있다는 사실을 깨닫게 되었다.
defaultdict은 collections 모듈로부터 import하여 사용 가능하다.
from collections import defaultdict
a = defaultdict(int) # 0
b = defaultdict(list) # []
c = defaultdict(lambda : 1 ) # 1
d = defaultdict(lambda : [1, []] ) # [1, []]
이와 같이 활용할 수 있다.
특히 마지막 줄처럼, lambda 표현식을 이용하여 본인이 원하는 형태로 초기 값을 지정해줄 수 있어 편리하게 사용 가능할 것 같다.