どうすれば変換できますか?defaultdict
number_to_letter
defaultdict(<class 'list'>, {'2': ['a'], '3': ['b'], '1': ['b', 'a']})
共通するdict
?
{'2': ['a'], '3': ['b'], '1': ['b', 'a']}
ベストアンサー1
次のように呼び出すだけですdict
:
>>> a
defaultdict(<type 'list'>, {'1': ['b', 'a'], '3': ['b'], '2': ['a']})
>>> dict(a)
{'1': ['b', 'a'], '3': ['b'], '2': ['a']}
しかし、defaultdictは辞書:
>>> isinstance(a, dict)
True
ただし、動作が少し異なり、存在しないキーにアクセスしようとすると (通常は が発生しますKeyError
)、default_factory
代わりに が呼び出されます。
>>> a.default_factory
<type 'list'>
これは、print a
辞書のデータ側が表示される前に表示されるものです。
したがって、実際に新しいオブジェクトを作成せずに、より辞書のような動作を取り戻すためのもう 1 つの方法は、リセットすることです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
しかし、ほとんどの場合、これは面倒な作業に値しません。