Ordered Default Dict에 대한 OrderedDict와 defaultdict 결합
OrderedDict와 defaultdict는 Python 컬렉션 모듈의 두 가지 강력한 데이터 구조입니다. OrderedDict는 요소의 순서를 유지하는 반면 defaultdict는 누락된 키에 대한 기본값을 제공합니다. 그러나 이러한 기능을 단일 데이터 구조로 결합하는 것은 어려울 수 있습니다.
DefaultOrderedDict를 사용한 사용자 정의 구현
가능한 해결책 중 하나는 다음을 상속하는 DefaultOrderedDict라는 사용자 정의 클래스를 생성하는 것입니다. OrderedDict 및 기본값 기능을 추가합니다. 다음은 Stack Overflow 답변에서 영감을 받은 구현입니다.
<code class="python">from collections import OrderedDict, Callable class DefaultOrderedDict(OrderedDict): # Source: http://stackoverflow.com/a/6190500/562769 def __init__(self, default_factory=None, *a, **kw): if (default_factory is not None and not isinstance(default_factory, Callable)): raise TypeError('first argument must be callable') OrderedDict.__init__(self, *a, **kw) self.default_factory = default_factory # Override __getitem__ to handle missing keys def __getitem__(self, key): try: return OrderedDict.__getitem__(self, key) except KeyError: return self.__missing__(key) # Raise KeyError if no default factory is provided def __missing__(self, key): if self.default_factory is None: raise KeyError(key) self[key] = value = self.default_factory() return value # ... (additional methods and overrides for copy, deepcopy, and repr)</code>
이 DefaultOrderedDict 클래스는 OrderedDict와 defaultdict의 기능을 결합하여 요소에 대한 순서화된 액세스를 허용하고 누락된 키에 대한 기본값을 제공합니다.
위 내용은 Python에서 기본값을 사용하여 순서가 지정된 사전을 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!