Python/Python 공부
defaultdict
Lim Seung Hyun
2022. 5. 31. 09:22
개요
- 딕셔너리에 없는 키에 접근할 때 특정 기본값을 지정해주기 위해 사용
- defaultdict는 collections안에 구현
생성 방법
from collections import defaultdict
sample = defaultdict() # defaultdict에 default 값을 지정해주지 않으면 없는 key 접근시 KeyError가 발생한다.
# print(sample["one"]) >> KeyError 발생
default = dict
sample2 = defaultdict(default) # defaultdict(Default Value) # Default Value는 무조건 callable 해야한다.
print(sample2["one"])
- defaultdict(default)으로 생성하며 default가 비어있는 경우 나중에 KeyError 가 발생
- default로 지정해줄시 해당 기본값은 callable 해야한다.
- callable이란
- 객체에 __call__ 이 구현되어 있어 호출이 가능한 형태
- list, dict 등이 callable 하며 사용자 클래스 내부에도 __call__ 만 구현되어 있으면 callable 해지며 defaultdict에서 default로 사용할 수 있다.
- callable(대상) : 대상이 callable한지 판단 (callabe 하면 True / 아니면 False)
- callable이란
키 작동 방식
- 해당 키가 있는지 확인
- 있으면 해당 키와 매핑된 값을 리턴
- 없으면
- default_factory 을 호출하여 기본값 생성
- 생성한 기본값을 해당 키와 매핑
주의
- defaultdict은 dict[key] 와 같은 __getitem__ 에 대한 기본값 제공을 위해 호출되며 in을 사용하는 __contain__ 이나 get()에는 영향을 미치지 않는다
728x90