Erstellen Sie eine Kopie der Standardeinstellungen, und aktualisieren Sie sie mit d
; wenn alle Schlüssel in d
Strings sind, können Sie dies mit einem dict()
Aufruf:
d = dict(default_dict, **d)
für Wörterbücher mit Nicht-String-Schlüssel, dann würden Sie zwei Schritten:
d = default_dict.copy()
d.update({'name': 'James', 'age': 65})
oder könnten Sie verwenden eine Schleife, um d
mit irgendwelchen Schlüsseln zu aktualisieren, die nicht unter Verwendung der Wörterbuchansichten vorhanden sind; dies ist jedoch nicht so schnell:
d = {'name': 'James', 'age': 65}
d.update((k, default_dict[v]) for k in default_dict.viewkeys() - d)
ersetzen viewkeys
mit keys
in Python 3.
Wenn Sie Python verwenden 3.5 oder neuer können Sie ähnliche Syntax verwenden, um ein neues Wörterbuch zu erstellen:
d = {**default_dict, 'name': 'James', 'age': 65}
Die Schlüssel-Wert-Paare von default_dict
werden zuerst angewendet, gefolgt von den von Ihnen neu festgelegten Schlüsseln; Diese überschreiben die alten. Siehe PEP 448 - Additional Unpacking Generalizations in der Dokumentation 3.5 What's New.
Jede der Methoden zum Erstellen eines neuen Wörterbuchs kann ein vorhandenes Wörterbuch einfach aktualisieren, indem es in einen dict.update()
-Aufruf eingefügt wird. So ist die erste mit d
in-Place-Aktualisierung könnte:
d.update(dict(default_dict, **d))
tun Sie einfach das Update umgekehrt – njzk2
@ njzk2 Die Frage besagt, dass 'default_dict' sollte nicht zerstört werden. – Miguel
eine Kopie davon machen – njzk2