Python defaultdict는 일반적인 Python 딕셔너리와 거의 동일한 동작을 합니다. 그러나 누락된 키에 접근하거나 수정하려고 할 때, defaultdict는 자동으로 키를 생성하고 기본값을 할당합니다. 이로써 defaultdict는 딕셔너리에서 누락된 키를 처리하는 데 유용한 선택지가 됩니다.
defaultdict 사용하기
이 튜토리얼에서는 Python defaultdict 타입을 다음과 같이 사용하는 방법에 대해 알아보겠습니다.
그룹화하기
실행 결과:
고유한 항목 그룹화하기
실행 결과:
항목 개수 세기
실행 결과:
값 누적하기
실행 결과:
defaultdict와 dict의 차이점
defaultdict는 누락된 키에 대해 자동으로 기본값을 설정하지만, dict는 누락된 키로 접근하면 KeyError 예외가 발생합니다.
defaultdict는 기본값을 설정하기 위해 default_factory 메서드를 사용하며, dict는 setdefault() 메서드를 사용합니다.
defaultdict는 __missing__() 메서드를 통해 누락된 키를 처리할 수 있지만, dict에는 이러한 기능이 없습니다.
Python defaultdict 타입 에뮬레이션
만약 defaultdict를 사용할 수 없는 경우, 직접 defaultdict의 동작을 모방할 수 있습니다. 다음은 Python defaultdict를 에뮬레이션하는 방법입니다.
실행 결과:
.default_factory에 인수 전달하기
default_factory에 인수를 전달하면 코드를 더 유연하게 만들 수 있습니다. 다음은 lambda와 functools.partial()을 사용하여 인수를 전달하는 예입니다.
lambda 사용하기
실행 결과:
functools.partial() 사용하기
실행 결과:
결론
이 튜토리얼에서는 Python defaultdict 타입을 사용하여 누락된 키를 처리하는 방법에 대해 알아보았습니다. defaultdict를 사용하면 누락된 키로 접근하여 KeyError 예외가 발생하는 상황을 효과적으로 처리할 수 있습니다. 그리고 defaultdict를 사용하여 그룹화, 항목 개수 세기, 값 누적하기 등 다양한 작업을 수행할 수 있습니다. 이러한 기능을 숙지하고 실제 프로그래밍에 활용하면 Python 코드를 보다 효율적으로 작성할 수 있을 것입니다.