Collections.defaultdict와 Regular Dict: 구별 이해
누락된 키에 대해 KeyError를 발생시키는 기존 Python 사전과 달리 defaultdict는 다음을 제공합니다. 독특한 반전. 사용자 정의 "호출 가능" 객체에 의해 결정된 기본값으로 존재하지 않는 키를 자동으로 초기화합니다. 기능을 완전히 이해하기 위해 구문과 메커니즘을 자세히 살펴보겠습니다.
질문에 제공된 첫 번째 예에서:
>>> from collections import defaultdict >>> s = 'mississippi' >>> d = defaultdict(int) >>> for k in s: ... d[k] += 1 ... >>> d.items() dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
defaultdict를 사용하고 int를 호출 가능 개체로 지정합니다. 문자열 s를 반복할 때 defaultdict는 int()를 호출하여 자동으로 누락된 키를 생성합니다. 이 함수는 0으로 초기화된 정수 개체를 반환합니다. 결과적으로 s의 모든 문자는 결과 사전 d의 키가 되며 해당 값은 발생 빈도가 됩니다.
두 번째 예에서:
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] >>> d = defaultdict(list) >>> for k, v in s: ... d[k].append(v) ... >>> d.items() [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
defaultdict를 다시 사용하고 목록을 호출 가능한 객체로 전달합니다. 이번에는 list()를 사용하여 존재하지 않는 키를 초기화합니다. 튜플 목록을 반복할 때 defaultdict는 각 고유 색상이 키로 표시되도록 보장합니다. 해당 값은 각 색상의 출현 빈도를 저장하는 목록입니다.
defaultdict를 활용하면 키가 누락된 사전에서 편리하게 작업하여 잠재적인 KeyError 예외를 방지하고 코드를 단순화할 수 있습니다.
위 내용은 Python의 `defaultdict` 대 일반 `dict`: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!