[python] defaultdict에 대해서 (dictionary 초기화)

JunYoung7·2022년 5월 12일

파이썬에서 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 표현식을 이용하여 본인이 원하는 형태로 초기 값을 지정해줄 수 있어 편리하게 사용 가능할 것 같다.

profile
JunYoung7의 프로그래밍 발자취

0개의 댓글