Wie füge ich einen Schlüssel zu einem bestehenden Wörterbuch hinzu? Es hat keine .add()
Methode.
Ich wollte nur klarstellen, dass sich die Dinge von Zeit zu Zeit ändern, insbesondere bei der Programmierung.
Wie füge ich einen Schlüssel zu einem bestehenden Wörterbuch hinzu? Es hat keine .add()
Methode.
Ich denke, es wäre auch nützlich, auf Pythons collections
Modul, das aus vielen nützlichen Wörterbuchunterklassen und Wrappern besteht, die die Hinzufügen und Ändern von Datentypen in einem Wörterbuch und zwar defaultdict
:
dict-Unterklasse, die eine Fabrikfunktion aufruft, um fehlende Werte zu liefern
Dies ist besonders nützlich, wenn Sie mit Wörterbüchern arbeiten, die immer aus denselben Datentypen oder Strukturen bestehen, z. B. ein Wörterbuch mit Listen.
>>> from collections import defaultdict
>>> example = defaultdict(int)
>>> example['key'] += 1
>>> example['key']
defaultdict(<class 'int'>, {'key': 1})
Wenn der Schlüssel noch nicht vorhanden ist, defaultdict
weist den angegebenen Wert zu (in unserem Fall 10
) als Anfangswert für das Wörterbuch (oft in Schleifen verwendet). Diese Operation erfüllt also zwei Aufgaben: Sie fügt einen neuen Schlüssel zu einem Wörterbuch hinzu (wie in der Frage angegeben), と weist den Wert zu, wenn der Schlüssel noch nicht existiert. Mit dem Standard-Wörterbuch hätte dies zu einem Fehler geführt, da die +=
Operation versucht, auf einen Wert zuzugreifen, der noch nicht existiert:
>>> example = dict()
>>> example['key'] += 1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'key'
Ohne den Einsatz von defaultdict
Der Code zum Hinzufügen eines neuen Elements wäre wesentlich umfangreicher und würde etwa so aussehen:
# This type of code would often be inside a loop
if 'key' not in example:
example['key'] = 0 # add key and initial value to dict; could also be a list
example['key'] += 1 # this is implementing a counter
defaultdict
kann auch mit komplexen Datentypen verwendet werden, z. B. list
y set
:
>>> example = defaultdict(list)
>>> example['key'].append(1)
>>> example
defaultdict(<class 'list'>, {'key': [1]})
Durch das Hinzufügen eines Elements wird die Liste automatisch initialisiert.
Sie können ein neues Schlüssel-Werte-Paar wie folgt erstellen:
my_dictionary = {"key1" : "value1"}
my_dictionary["key2"] = "value2"
Um "key1" oder "value2" zu ändern, können Sie dasselbe wie folgt tun:
my_dictionary = {"key1" : "value1"}
my_dictionary["key2"] = "value2"
my_dictionary["key1"] = "value1_revised"
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Entweder verwenden Sie die akzeptierte Antwort: d['mynewkey'] = 'mynewvalue' oder Sie können val = d.setdefault('mynewkey', 'mynewvalue') verwenden.
2 Stimmen
Wenn Sie einfach <Wörterbuch>[<Schlüssel>] = <Wert> verwenden und der Schlüssel nicht existiert, wird er automatisch hinzugefügt.
2 Stimmen
Re @cs95, dies erzeugt auch ein neues Diktat mit einem zusätzlichen Schlüssel:
dict(existing_dict, new_key=new_val)
per stackoverflow.com/a/46647897/18404711 Stimmen
@MaxGhenis danke, das funktioniert gut für Python < 3.5 (mit einem Vorbehalt), ich habe eine Community-Wiki-Antwort hinzugefügt aquí .