자료구조+알고리즘
defaultDict
덕구공
2022. 5. 18. 12:49
Why?
- 파이썬에서 딕셔너리를 사용할 때, 딕셔너리 안에 없는 키 값을 조회하면 오류가 발생한다!
dict = {}
print(dict['a'])
# 오류발생!!
- defaultDict는 존재하지 않는 인덱스로 조회를 시도할 경우 에러를 발생하지 않고 그 자리에서 바로 디폴트 객체를 생성해준다!
- defaultDict의 인자에 디폴트 객체를 넘겨줘서 존재하지 않는 키를 조회할 때 디폴트 값을 넘겨줘서 이러한 문제를 수월하게 해결할 수 있다!
- 어떤 딕셔너리에 값이 있는지 확인하고 없으면 해당 key와 value를 넣는 경우에 사용하면 좋을 것 같다
사용법
- default 객체의 인자에 값이 아닌 객체를 넘겨줘야 한다!
- int, class, set, list, tuple 등등..
int를 넘겨준 경우
- 디폴트 값으로 0이 넘어간다!
from collections import defaultdict
dict = defaultdict(int)
print(dict['a'])
# 0
list를 넘겨준 경우
- 디폴트 값으로 []이 넘어간다!
dict = defaultdict(list)
print(dict['a'])
# []
객체가 아닌 값을 넘겨줄 경우
- 오류가 발생!!!!
dict = defaultdict('123')
print(dict['a'])