일반적으로 파이썬의 딕셔너리에서 미리 삽입하지 않은 키를 호출할 경우에는 오류가 발생한다.
dic=dict()
print(dic['A'])
>>>KeyError: 'A' 오류 발생!
딕셔너리에 'A'라는 키의 값을 삽입하지 않았으므로 오류가 발생하는건 당연하다.
이를 해결하기위해 아래처럼 setdefault라는 함수를 사용할 수 있다.
dic=dict()
dic.setdefault("A",1)
setdefault를 이용하면 key값을 삽입할때마다 매번 함수를 호출해야하는 번거로움이 있다.
딕셔너리를 선언함과 동시에 미리 지정한 값이 설정되도록 할 수는 없을까?
이때 collections 모듈에 있는 defaultdict 라는 함수가 등장한다.
from collections import defaultdict
dic=defaultdict(int)
print(dic["A"])
>>> 0
딕셔너리 value의 기본값은 int 말고도 list, set로도 설정할 수 있다.
또한 lambda함수를 이용해서 원하는 값으로도 설정할 수 있다.
from collections import defaultdict
dic=defaultdict(lambda:'hello')
print(dic["A"])
>>> hello
'알고리즘 > Python 문법' 카테고리의 다른 글
[Python] 딕셔너리의 기능들 (0) | 2021.02.14 |
---|