私が持っている場合はd=dict(zip(range(1,10),range(50,61)))
、私が構築できるかcollections.defaultdict
のうちにdict
?
唯一の議論defaultdict
はファクトリ関数です。初期化してから元の関数を調べてd
更新する必要がありdefaultdict
ますか?
回答:
最初の引数は、default_factory属性の初期値を提供します。デフォルトはNoneです。残りのすべての引数は、キーワード引数を含め、dictコンストラクターに渡された場合と同じように扱われます。
from collections import defaultdict
d=defaultdict(int, zip(range(1,10),range(50,61)))
または辞書を与えられたd
:
from collections import defaultdict
d=dict(zip(range(1,10),range(50,61)))
my_default_dict = defaultdict(int,d)
None
ことで不明なキーに対してNoneが生成されることを意味するわけではなく、キーをまったく使用しないためです。あなたがする必要があるdefaultdict(lambda: None, {....})
dictを2番目の引数として渡すことにより、dictからdefaultdictを作成できます。
from collections import defaultdict
d1 = {'foo': 17}
d2 = defaultdict(int, d1)
print(d2['foo']) ## should print 17
print(d2['bar']) ## should print 1 (default int val )
default_dict = defaultdict(None,{"a":1,"b":{"c":3}})
たとえばdefault_dict["e"]
、KeyErrorを発生させ、代わりにNoneを返します