Python의 defaultdict 는 기본값을 자동으로 설정해주는 딕셔너리로, 키가 없을 때도 오류 없이 기본값을 제공한다.
collections 모듈에서 제공하며, 초기화 시 기본값을 반환할 함수를 지정할 수 있어 편리하다.
자바에서는 hashMap 에 해당하지만, defaultdict 는 키가 없을 경우에도 기본값을 자동으로 설정해준다는 점에서 차이가 있다.
이는 특정 키가 아직 추가되지 않은 상태에서 값을 추가해야할 때 유용하다.
기본 사용법
defaultdict 를 생성하려면 collections.defaultdict 를 임포트하고, 기본값을 생성할 함수를 인수로 전달한다.
from collections import defaultdict
# 정수를 기본값으로 설정
count_dict = defaultdict(int)
# 'a' 키가 없지만 0으로 초기화 후 1 증가
count_dict['a'] += 1
print(count_dict['a']) # 출력 : 1
print(count_dict['b']) # 출력 : 0 (키가 'b'가 없어도 0으로 자동 초기화)
자바의 Map 에서는 getOrDefault 메서드가 유사한 기능을 제공하지만, Python의 defaultdict 는 이보다 훨씬 간편하다.
다양한 기본값 사용 예시
- 기본값을 빈 리스트로 설정하여, 키에 여러 값을 추가할 때 유용하다
- defaultdict(list) : 리스트를 기본값으로 설정
- defaultdict(set) : 집합을 기본값으로 설정
#리스트를 기본값으로 설정
group_dict = defaultdict(list)
group_dict['fruits'].append('apple')
group_dict['fruits'].append('banana')
print(group_dict['fruits']) # 출력 : ['apple', 'banana']
print(group_dict['vegetables']) # 출력 : [] (키가 없으므로 빈 리스트 반환)
이렇게 리스트 기본값을 설정해두면, 새로운 키에 값을 추가할 때 리스트를 미리 선언할 필요가 없어 코드가 더 깔끔해진다.
'Python > 기본' 카테고리의 다른 글
[Python] 리스트 컴프리헨션(List Comprehension) (1) | 2024.11.09 |
---|---|
[Python] match (0) | 2024.11.08 |
[Python] max(), min() 함수 (0) | 2024.11.07 |
[Python] 리스트 인덱싱과 슬라이싱 (0) | 2024.11.02 |
[Python] range() 함수 (0) | 2024.11.02 |