딕셔너리를 사용하다보면 값을 ++ 해주거나 변경할때 해당 키의 벨류가 있는지 검사를 해줘야한다.
이게 너무 귀찮을때 쓸수있는 모듈로 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 |