5

キーに2つの値があり、プログラム中に更新される状況があります。もっと具体的には、空の辞書d = {}から始めて、次のようなことをしたいと思います。 d[a][0] += 1またはd[a][1] += 1、プログラムの実行中にも検出されるfloat型です効果を上げるために何かを行うことはできますかd = defaultdict(list([0,0]))(これによりエラーが発生します)、辞書のデフォルト値を2つの要素のリストにします。どうすればよいですか?

4

1 に答える 1

20

ドキュメントを読んでください:

Noneでない場合default_factory、指定されたキーのデフォルト値を提供するために引数なしで呼び出され、この値がキーのディクショナリに挿入されて返されます。

つまり、defaultdictの引数はデフォルト値ではなく、デフォルト値を生成するために呼び出される関数です。だから、ただやってください:

defaultdict(lambda: [0,0])

list([0,0])(明示的 に使用する必要はありません。[0,0]すでにリストになっています。)

于 2013-02-25T05:14:42.460 に答える