본문 바로가기

알고리즘/Python 문법

[Python] 딕셔너리의 기본값 처리 (defaultdict)

일반적으로 파이썬의 딕셔너리에서 미리 삽입하지 않은 키를 호출할 경우에는 오류가 발생한다.

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