
In diesem Artikel wird erläutert, wie SIE einem Wörterbuch-Diktat ein neues Element hinzufügen oder den Wert eines vorhandenen Elements in Python aktualisieren. Es ist auch möglich, mehrere Wörterbücher zusammenzuführen.
- Hinzufügen/Aktualisieren eines Elements zum/im Wörterbuch durch Angabe eines Schlüssels
- Mehrere Wörterbücher zusammenführen:
update(), {}, dict(), |, |=
- Hinzufügen/Aktualisieren mehrerer Elemente zum/im Wörterbuch:
update(), |=
In den following Artikeln erfahren SIE, wie SIE ein Element aus einem Wörterbuch entfernen, das Vorhandensein eines Schlüssels überprüfen und den Schlüssel ändern.
Hinzufügen/Aktualisieren eines Elements zum/im Wörterbuch durch Angabe eines Schlüssels
Sie können dem Wörterbuch ein Element hinzufügen oder den Wert eines vorhandenen Elements wie folgt aktualisieren.
If ein nicht vorhandener Schlüssel angegeben WIRD, WIRD ein neues Element hinzugefügt, und wenn ein vorhandener Schlüssel angegeben WIRD, WIRD der Wert des vorhandenen Elements aktualisiert (überschrieben).
d = {'k1': 1, 'k2': 2}
d['k3'] = 3
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
d['k1'] = 100
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}
Wenn Sie den Wert für einen vorhandenen Schlüssel nicht aktualisieren möchten, verwenden Sie die Methode setdefault(). Siehe folgenden Artikel.
Mehrere Wörterbücher zusammenführen:update(), |, |=
aktualisieren()
Durch die Angabe eines anderen Diktats als Argument der Methode update() werden alle seine Elemente hinzugefügt.
Wenn sich der Schlüssel mit einem vorhandenen Schlüssel überschneidet, wird er mit dem im Argument angegebenen Wert von dict überschrieben.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d1.update(d2)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Ein Fehler wird ausgelöst, wenn mehr als ein Wörterbuch als Argument von update() angegeben wird.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}
# d1.update(d2, d3)
# TypeError: update expected at most 1 arguments, got 2
Wie später beschrieben, kann update() neue Elemente mit Schlüsselwortargumenten (Schlüssel=Wert) hinzufügen, sodass SIE jedes Element mit ** entpacken und übergeben können.
d1.update(**d2, **d3)
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
In diesem Fall ist es in Ordnung, dass die Schlüssel des Wörterbuchs, das die Methode aufruft, und die Schlüssel des im Argument angegebenen Wörterbuchs wie im Beispiel dupliziert werden, aber es wird ein Fehler ausgelöst, wenn die mehreren Schlüsselbücher im Argument angegeben werden dupliziert werden.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}
# d3.update(**d1, **d2)
# TypeError: dict.update() got multiple values for keyword argument 'k1'
{} (Python 3.5 oder höher), dict()
Mit update() wird das Originalwörterbuch aktualisiert.
Wenn Sie ein neues Wörterbuch erstellen möchten, indem Sie mehrere Wörterbücher zusammenführen, verwenden Sie {**d1, **d2} (ab Python 3.5) oder dict(**d1, **d2).
d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
print({**d1, **d2})
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
print(dict(**d1, **d2))
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
Im Fall von dict(**d1, **d2) tritt ein Fehler auf, wenn die Schlüssel mehrere als Argumente angegebener Wörterbücher dupliziert werden.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
print({**d1, **d2})
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
# print(dict(**d1, **d2))
# TypeError: dict() got multiple values for keyword argument 'k1'
In den following Artikeln FINDEN SIE Laptops zum Erstellen eines Wörterbuchs.
In Python 3.9 oder höher ist es auch möglich, ein neues Wörterbuch mit dem | Operator zu erstellen , der als nächstes beschrieben wird.
| Operator, |= Operator (Python 3.9 oder höher)
Seit Python 3.9 ist es möglich, zwei Wörterbücher mit dem | Operator. Wenn sie den gleichen Schlüssel haben, wird dieser mit dem Wert auf der rechten Seite überschrieben.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d = d1 | d2
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
d = d2 | d1
print(d)
# {'k1': 1, 'k3': 3, 'k4': 4, 'k2': 2}
Sie können mehrere Wörterbücher kombinieren.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d3 = {'k5': 5, 'k6': 6}
d = d1 | d2 | d3
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
Wie += für +, |= für | ist ebenfalls vorgesehen. Wie bei update() WIRD das linke Objekt aktualisiert.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3, 'k4': 4}
d1 |= d2
print(d1)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Hinzufügen/Aktualisieren mehrerer Elemente zum/im Wörterbuch:update(), |=
aktualisieren()
Wenn das Schlüsselwortargument key=value für die Methode update() angegeben WIRD, WIRD das Element mit seinem Schlüssel und Wert hinzugefügt. Wenn sich der Schlüssel mit einem vorhandenen überschneidet, wird er mit dem als Argument angegebenen Wert überschrieben.
d = {'k1': 1, 'k2': 2}
d.update(k1=100, k3=3, k4=4)
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Es ist auch möglich, eine Liste von (Schlüssel, Wert) als Argument für die Methode update() anzugeben. Wenn sich der Schlüssel mit einem vorhandenen überschneidet, wird er mit dem als Argument angegebenen Wert überschrieben.
d = {'k1': 1, 'k2': 2}
d.update([('k1', 100), ('k3', 3), ('k4', 4)])
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Sie können zip() verwenden, um Elemente aus einer Liste von Schlüsseln und einer Liste von Werten hinzuzufügen.
d = {'k1': 1, 'k2': 2}
keys = ['k1', 'k3', 'k4']
values = [100, 3, 4]
d.update(zip(keys, values))
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
Siehe den folgenden Artikel über zip().
Bei Schlüsselwortargumenten WIRD ein Fehler ausgelöst, WENN derselbe Schlüssel angegeben WIRD. Bei (Schlüssel-Wert-)Listen und zip() sind doppelte Schlüssel akzeptabel. Er wird durch den späteren Wert überschrieben.
d = {'k1': 1, 'k2': 2}
# d.update(k3=3, k3=300)
# SyntaxError: keyword argument repeated: k3
d = {'k1': 1, 'k2': 2}
d.update([('k3', 3), ('k3', 300)])
print(d)
# {'k1': 1, 'k2': 2, 'k3': 300}
d = {'k1': 1, 'k2': 2}
keys = ['k3', 'k3']
values = [3, 300]
d.update(zip(keys, values))
print(d)
# {'k1': 1, 'k2': 2, 'k3': 300}
|= Operator (Python 3.9 oder höher)
Der Operator |= sterben ermöglicht Angabe einer Liste von (Schlüssel, Wert) auf der rechten Seite.
d = {'k1': 1, 'k2': 2}
d |= [('k1', 100), ('k3', 3), ('k4', 4)]
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3, 'k4': 4}
sterben | operator unterstützt nur Operationen zwischen Wörterbüchern. Sie können keine Liste angeben.
# d | [('k1', 100), ('k3', 3), ('k4', 4)]
# TypeError: unsupported operand type(s) for |: 'dict' and 'list'