본문 바로가기

프로그래밍 언어 노트/Python

python defaultdict 과 defaultdict of defaultdict

딕셔너리를 사용하다보면 값을 ++ 해주거나 변경할때 해당 키의 벨류가 있는지 검사를 해줘야한다.

이게 너무 귀찮을때 쓸수있는 모듈로 defaultdict 이있다.

from collections import defaultdict

ddict = defaultdict(int)

defaultdict은 해당 키가 없는경우 파라미터의 기본으로 값을 초기화 해준다.

즉 위 상태에서 ddict['test'] += 1; 을 하면 'test' 키가 없습니다. 라고 오류를 뿜는것이 아니라 그냥 기본값 0 이 들어가고 ddict['test'] 는 1이 된다.

 

파라미터로 int, set, 뭐 기타등등을 넣을수 있는데

이때 기본값을 좀더 명확하게 정해주고싶을때가 있는데,

예를 들어 defaultdict(default(int)) 와 같은 형식으로 넘기고 싶은경우에는 그냥 이렇게 쓰면 안되고 람다식으로 넘겨주면 된다.

defaultdict(lambda: defaultdict(int))
defaultdict(lambda: [0 for x in range(35)])

첫번째는 defaultdict 에 기본값으로 defaultdict(int) 를 넣은거고

두번째는 defaultdict 에 기본값으로 [0,0,0,0,0,0 ... 0,0,0,0,0] 을 넣은것이다

 

728x90

'프로그래밍 언어 노트 > Python' 카테고리의 다른 글

Python Hex to float  (0) 2019.08.02
Python 폴더의 파일 전부 가져오기  (0) 2019.08.02
Python 에서 IP 가져오기  (0) 2019.08.02