您可以简单地致电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'>
这就是您print a
在字典的数据端出现之前看到的内容。
因此,在不实际制作新对象的情况下恢复更多类似dict的行为的另一个技巧是重置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
但这在大多数情况下都不值得。