デフォルトのコピーを作成し、d
で更新します。 d
内のすべてのキーが文字列である場合、あなたは1回のdict()
呼び出しでそうすることができます。
d = default_dict.copy()
d.update({'name': 'James', 'age': 65})
またはあなたが使用できます。非文字列のキーを持つ辞書用
、次の2つの手順を使用したいです辞書ビューを使用してキーが存在しない場合、d
を更新するループ。しかし、これは早くないです
d = {**default_dict, 'name': 'James', 'age': 65}
:
d = {'name': 'James', 'age': 65}
d.update((k, default_dict[v]) for k in default_dict.viewkeys() - d)
あなたは新しい辞書を作成するためのPython 3.5以降、あなたが同様の構文を使用することができますを使用している場合はPython 3
にkeys
でviewkeys
を交換してください
default_dict
のキーと値のペアが最初に適用され、続いて新しいキーが適用されます。これらは古いものを上書きします。 3.5 What's NewのドキュメントのPEP 448 - Additional Unpacking Generalizationsを参照してください。
新しい辞書を作成する方法のいずれも、単にdict.update()
呼び出しでラップするだけで、既存の辞書を更新することができます。だから、最初はとインプレースd
を更新できます。私は私が持っていた新しい辞書を作成していた場合
for key, value in dict_of_defaults.items():
dict_maybe_without_defaults.setdefault(key, value)
:既存の辞書を更新するには
d.update(dict(default_dict, **d))
ちょうど別の方法で – njzk2
@ njzk2を更新してください。「default_dict」は破棄しないでください。 – Miguel
コピーを – njzk2