defaultdictをdictに変換するにはどうすればいいですか? 質問する

defaultdictをdictに変換するにはどうすればいいですか? 質問する

どうすれば変換できますか?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

しかし、ほとんどの場合、これは面倒な作業に値しません。

おすすめ記事