파이썬에서 defaultdict 사용법과 활용 사례
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의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.