F-Lab
🚀
상위권 IT회사 합격 이력서 무료로 모아보기

파이썬에서 defaultdict 사용법과 활용 사례

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

AI가 제공하는 얕고 넓은 지식을 위한 짤막한 글입니다!



파이썬 defaultdict 소개

파이썬의 defaultdict는 collections 모듈에서 제공하는 매우 유용한 자료구조입니다. defaultdict는 기본값을 제공하여 키가 존재하지 않을 때 자동으로 초기화해주는 딕셔너리입니다.

이번 글에서는 defaultdict의 기본 사용법과 다양한 활용 사례를 예제와 함께 설명하겠습니다.

왜냐하면 defaultdict를 사용하면 코드의 간결성과 가독성을 높일 수 있기 때문입니다.

기본 딕셔너리와 비교하여 defaultdict의 장점을 이해하는 것이 중요합니다.

이를 통해 더 효율적인 파이썬 코드를 작성할 수 있습니다.



defaultdict의 기본 사용법

defaultdict를 사용하려면 collections 모듈을 임포트해야 합니다. defaultdict는 기본값을 설정할 수 있는 함수나 타입을 인자로 받습니다.

예를 들어, 기본값이 0인 defaultdict를 생성하려면 다음과 같이 작성할 수 있습니다:

from collections import defaultdict

word_count = defaultdict(int)

이제 키가 존재하지 않을 때 자동으로 0으로 초기화됩니다:

word_count['apple'] += 1
print(word_count['apple'])  # 출력: 1

왜냐하면 키가 존재하지 않을 때 기본값으로 초기화되기 때문입니다.

이를 통해 코드에서 불필요한 조건문을 줄일 수 있습니다.



defaultdict의 다양한 활용 사례

defaultdict는 다양한 상황에서 유용하게 사용할 수 있습니다. 예를 들어, 리스트를 기본값으로 설정하여 키에 여러 값을 추가할 수 있습니다:

from collections import defaultdict

list_dict = defaultdict(list)
list_dict['fruits'].append('apple')
list_dict['fruits'].append('banana')
print(list_dict['fruits'])  # 출력: ['apple', 'banana']

또한, 집합(set)을 기본값으로 설정하여 중복을 제거할 수 있습니다:

from collections import defaultdict

set_dict = defaultdict(set)
set_dict['fruits'].add('apple')
set_dict['fruits'].add('banana')
set_dict['fruits'].add('apple')
print(set_dict['fruits'])  # 출력: {'apple', 'banana'}

왜냐하면 기본값을 설정하여 다양한 자료구조를 활용할 수 있기 때문입니다.

이를 통해 코드의 유연성을 높일 수 있습니다.



defaultdict와 일반 딕셔너리 비교

defaultdict와 일반 딕셔너리는 비슷하지만, 몇 가지 중요한 차이점이 있습니다. 일반 딕셔너리는 키가 존재하지 않을 때 KeyError를 발생시키지만, defaultdict는 기본값으로 초기화합니다.

예를 들어, 일반 딕셔너리에서 키가 존재하지 않을 때:

normal_dict = {}
try:
    print(normal_dict['apple'])
except KeyError:
    print('KeyError 발생')

반면, defaultdict에서는 기본값으로 초기화됩니다:

from collections import defaultdict

default_dict = defaultdict(int)
print(default_dict['apple'])  # 출력: 0

왜냐하면 defaultdict는 기본값을 설정하여 KeyError를 방지하기 때문입니다.

이를 통해 코드의 안정성을 높일 수 있습니다.



defaultdict의 고급 활용

defaultdict는 고급 활용 사례에서도 매우 유용합니다. 예를 들어, 중첩된 딕셔너리를 생성할 때 defaultdict를 사용할 수 있습니다:

from collections import defaultdict

def nested_dict():
    return defaultdict(nested_dict)

nested = nested_dict()
nested['fruits']['apple']['count'] = 1
print(nested['fruits']['apple']['count'])  # 출력: 1

또한, defaultdict를 사용하여 트리 구조를 쉽게 생성할 수 있습니다:

from collections import defaultdict

def tree():
    return defaultdict(tree)

t = tree()
t['root']['branch']['leaf'] = 'green'
print(t['root']['branch']['leaf'])  # 출력: green

왜냐하면 defaultdict는 기본값을 설정하여 복잡한 자료구조를 쉽게 생성할 수 있기 때문입니다.

이를 통해 코드의 복잡성을 줄일 수 있습니다.



결론

파이썬의 defaultdict는 기본값을 제공하여 키가 존재하지 않을 때 자동으로 초기화해주는 매우 유용한 자료구조입니다. 이를 통해 코드의 간결성과 가독성을 높일 수 있습니다.

이번 글에서는 defaultdict의 기본 사용법과 다양한 활용 사례를 예제와 함께 설명하였습니다.

왜냐하면 defaultdict를 사용하면 코드의 간결성과 가독성을 높일 수 있기 때문입니다.

기본 딕셔너리와 비교하여 defaultdict의 장점을 이해하는 것이 중요합니다.

이를 통해 더 효율적인 파이썬 코드를 작성할 수 있습니다.

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수
F-Lab
소개채용멘토 지원
facebook
linkedIn
youtube
instagram
logo
(주)에프랩앤컴퍼니 | 사업자등록번호 : 534-85-01979 | 대표자명 : 박중수 | 전화번호 : 1600-8776 | 제휴 문의 : info@f-lab.kr | 주소 : 서울특별시 강남구 테헤란로63길 12, 438호 | copyright © F-Lab & Company 2025