본문 바로가기
파이썬

파이썬 Python : defaultdict를 dict로 변환

by º기록 2020. 12. 28.
반응형

defaultdict를 어떻게 변환 할 수 있습니까?

number_to_letter
defaultdict(<class 'list'>, {'2': ['a'], '3': ['b'], '1': ['b', 'a']})

일반적인 사전이 되려면?

{'2': ['a'], '3': ['b'], '1': ['b', 'a']}

 

해결 방법

 

간단히 dict 를 호출 할 수 있습니다.

>>> a
defaultdict(<type 'list'>, {'1': ['b', 'a'], '3': ['b'], '2': ['a']})
>>> dict(a)
{'1': ['b', 'a'], '3': ['b'], '2': ['a']}

그러나 defaultdict는 dict임을 기억하십시오.

>>> isinstance(a, dict)
True

약간 다른 동작으로, 누락 된 키에 액세스하려고하면 일반적으로 KeyError 가 발생합니다. 대신 default_factory 가 호출됩니다.

>>> a.default_factory
<type 'list'>

이것이 딕셔너리의 데이터 쪽이 나타나기 전에 인쇄 할 때 보게되는 것입니다.

따라서 실제로 새 객체를 만들지 않고 더 많은 딕셔너리와 같은 동작을 되찾기위한 또 다른 트릭은 default_factory 를 재설정하는 것입니다.

>>> a.default_factory = None
>>> a[4].append(10)
Traceback (most recent call last):
  File "<ipython-input-6-0721ca19bee1>", line 1, in <module>
    a[4].append(10)
KeyError: 4

그러나 대부분의 경우 이것은 문제의 가치가 없습니다.

 

참조 페이지 https://stackoverflow.com/questions/20428636

 

 

반응형

댓글