덕구공 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'])