1. ホーム
  2. python

[解決済み] collections.defaultdictはどのように機能するのですか?

2022-03-14 22:49:12

質問

Pythonのドキュメントで例を読みましたが、このメソッドが何を意味するのかまだわかりません。どなたか教えてください。以下はpython docsの2つの例です。

>>> from collections import defaultdict

>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
...     d[k] += 1
...
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]

そして

>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
...     d[k].append(v)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

パラメータ intlist は何のため?

解決方法は?

通常、Pythonの辞書では KeyError 現在辞書にないキーを持つ項目を取得しようとした場合。 このとき defaultdict これとは対照的に、アクセスしようとする項目はすべて単純に作成されます (もちろん、まだ存在していないことが前提ですが)。 このような "default"アイテムを作成するには、コンストラクタに渡した関数オブジェクトを呼び出します(正確には、関数オブジェクトと型オブジェクトを含む任意の "callable"オブジェクトを指します)。 最初の例では、デフォルトのアイテムは次のようにして作成します。 int() このオブジェクトは整数オブジェクトを返します。 0 . 2番目の例では、デフォルトの項目は list() で、これは新しい空のリスト・オブジェクトを返します。