728x90
반응형
collections.defaultdict
: 파이썬 collections 모듈에 있는 딕셔너리 서브 클래스이다.
: 일반 dict와 거의 동일하게 동작하지만, 존재하지 않는 키에 접근했을 때 자동으로 기본값을 생성하여 넣어주는 기능이 있다.
from collections impor defaultdict
- dict
: 존재하지 않는 키에 접근시 KeyError 발생
- defaultdict
: 존재하지 않는 키에 접근시 미리 지정한 함수를 호출하여 기본값을 만든 뒤, 그 값을 해당 키에 저장하고 반환
사용법
생성 방법
from collections import defaultdict
# 기본값으로 설정할 자료형을 객체 생성시 선언해준다
# int: 0
d = defaultdict(int)
# list: []
d = defaultdict(list)
# set: set()
d = defaultdict(list)
기본 예제
from collections import defaultdict
d = defaultdict(int) # 기본값 0
d["a"] += 1
d["b"] += 3
print(d) # defaultdict(<class 'int'>, {'a': 1, 'b': 3})
print(d["c"]) # 존재하지 않는 키("c")에 접근하였기 때문에 기본값(0)을 생성하여 반환
print(d) # defaultdict(<class 'int'>, {'a': 1, 'b': 3, 'c': 0})
defaultdict 자료형을 dict 자료형으로 변환
from collections import defaultdict
default_dict = defaultdict(int)
normal_dict = dict(default_dict)
print(type(normal_dict)) # <class 'dict'>
유의 사항
- defaultdict는 dict를 상속한 자료형으로, 존재하지 않는 키에 접근한 경우 자동으로 기본값을 생성하기 때문에 없는 키에 접근하는 자체만으로도 키가 생겨버리는 것을 유의해야 한다.
728x90
반응형