キーに2つの値があり、プログラム中に更新される状況があります。もっと具体的には、空の辞書d = {}から始めて、次のようなことをしたいと思います。
d[a][0] += 1
またはd[a][1] += 1
、プログラムの実行中にも検出されるfloat型です。効果を上げるために何かを行うことはできますかd = defaultdict(list([0,0]))
(これによりエラーが発生します)、辞書のデフォルト値を2つの要素のリストにします。どうすればよいですか?
6197 次
1 に答える
20
ドキュメントを読んでください:
Noneでない場合
default_factory
、指定されたキーのデフォルト値を提供するために引数なしで呼び出され、この値がキーのディクショナリに挿入されて返されます。
つまり、defaultdictの引数はデフォルト値ではなく、デフォルト値を生成するために呼び出される関数です。だから、ただやってください:
defaultdict(lambda: [0,0])
list([0,0])
(明示的 に使用する必要はありません。[0,0]
すでにリストになっています。)
于 2013-02-25T05:14:42.460 に答える