본문으로 건너뛰기
Park JiHo
#python#defaultdict#collections#data-structures

defaultdict

정의 : defaultdict는 Python의 collections 모듈에 포함된 특별한 사전 자료형...

#서론

Code를 분석할 일이 있었다. 짧은 코드는 아니였지만, 머신비전에 관련된 코드였다. 코드 내부에는 Python으로 defaultdict에 대해서 써있었는데, 무엇인지 몰라서 서술한다.

#defaultdict 설명

정의 : defaultdict는 Python의 collections 모듈에 포함된 특별한 사전 자료형
차이점 : 기본적인 사전(dict)과 유사하지만, defaultdict는 키(key)가 존재하지 않을 때 자동으로 기본 값을 생성해주는 점의 차이가 있음
주로 사용 : 대량의 데이터에서 미리 값을 초기화하거나, 키 오류(KeyError)를 방지하고자 할 때 매우 유용

#defaultdict 필요한 경우

#1. 초기값 없이 값 추가

작업 생략
원래 해야하는 초기화 과정

hobbies = defaultdict(list)
hobbies['James'].append('Piano')
hobbies['Bob'].append('Soccer')

# 출력 : defaultdict(<class 'list'>, {'James': ['Piano'], 'Bob': ['Soccer']})
print(hobbies)

새로운 취미 등장시, 자동으로 리스트 생성

#2. 기본 키 값 미리 정해 오류 방지

기본적인 사전 사용

scores = defaultdict(int)
print(scores['Tom']) # 출력 : 0 (Tom 키 값이 없으므로, 기본값 0 반환)

기본값 0으로 설정하여, 키 값이 없을 때 0 반환

#defaultdict 사용법

from collections import defaultdict

# int 기본값 지정, defaultdict 생성
default_d = defaultdict(int)

# 'apple' 이라는 키가 없으므로, 기본값 0 생성
print(default_d['apple']) # 출력 : 0

default_factory 로 list, set, int, float 등 기본 자료형 사용 가능

Connect