반응형
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 Python + OpenCV : cv2.imwrite (0) | 2020.12.28 |
---|---|
파이썬 목록에 동일한 값을 여러 번 추가 (0) | 2020.12.28 |
파이썬 Python 3에서 .txt 파일에 쓰는 방법 (0) | 2020.12.28 |
파이썬 Scapy로 TCP 플래그 얻기 (0) | 2020.12.28 |
파이썬 존재하지 않는 경우 새 파일에 쓰고있는 경우 파일에 추가 (0) | 2020.12.28 |
댓글