Collections.defaultdict と通常の dict の違い 質問する

Collections.defaultdict と通常の dict の違い 質問する

Python ドキュメントの例を読みましたが、このメソッドの意味がまだわかりません。誰か助けてもらえますか? Python ドキュメントからの例を 2 つ示します。

>>> from collections import defaultdict

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

そして

>>> 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])]

パラメータintとはlist何のために使用されるのでしょうか?

ベストアンサー1

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

おすすめ記事