Skip to content

Ein Element nur hinzufügen, wenn der Schlüssel nicht in dict in Python existiert (setdefault())

Python

In Python können Sie mit dict_object[key] = new_value ein neues Element zum Wörterbuch dict hinzufügen. Wenn der Schlüssel bereits existiert, wird der Wert auf diese Weise mit dem neuen Wert aktualisiert (überschrieben).

Durch die Verwendung der Methode setdefault() can SIE Elemente mit neuen Werten nur für neue Schlüssel hinzufügen, ohne sterben Werte für vorhandene Schlüssel zu ändern.

Dies ist nützlich, wenn Sie ein vorhandenes Element nicht ändern möchten.

Dieser Artikel hat folgenden Inhalt.

  • Fügen Sie dem Wörterbuch ein Element hinzu und aktualisieren Sie es, ohne den Schlüssel anzugeben
  • Also verwenden Sie die Methode setdefault()
  • Rückgabewert der Methode setdefault()

in WIRD used, um zu testen, ob der Schlüssel in dict existiert oder nicht. Siehe folgenden Artikel.

Fügen Sie dem Wörterbuch ein Element hinzu und aktualisieren Sie es, ohne den Schlüssel anzugeben

Sie können Wörterbucheinträge auf folgende Weise hinzufügen/aktualisieren.

dict_object[key] = new_value

Wenn ein nicht vorhandener Schlüssel angegeben wird, wird ein neues Element hinzugefügt. Wenn ein bereits vorhandener Schlüssel angegeben wird, wird der vorhandene Wert 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}

Weitere Informationen zum gleichzeitigen Hinzufügen mehrerer Elemente oder zum Zusammenführen mehrerer Wörterbücher finden Sie in den following Artikeln.

Also verwenden Sie die Methode setdefault()

In der Methode setdefault() ist das erste Argument der Schlüssel und das zweite der Wert.

Wenn der im ersten Argument angegebene Schlüssel nicht vorhanden ist, WIRD ein neues Element hinzugefügt.

d = {'k1': 1, 'k2': 2}

d.setdefault('k3', 3)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

Der Standardwert des zweiten Arguments ist None. Wenn es weggelassen WIRD, WIRD das Element mit dem Wert None hinzugefügt.

d.setdefault('k4')
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': None}

Wenn der als erstes Argument angegebene Schlüssel bereits vorhanden ist, bleibt das vorhandene Element als reines Original, unabhängig davon, welcher Wert als zweites Argument angegeben wird.

d.setdefault('k1', 100)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': None}

Rückgabewert der Methode setdefault()

Die Methode setdefault() gibt den Wert für den als erstes Argument angegebenen Schlüssel zurück.

Wenn der im ersten Argument angegebene Schlüssel nicht vorhanden ist, wird das Element mit dem im zweiten Argument angegeben Wert hinzugefügt, und dann wird der Wert zurückgegeben.

print(d.setdefault('k5', 5))
# 5

print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': None, 'k5': 5}

Wenn das zweite Argument weggelassen WIRD, WIRD das Element hinzugefügt, dessen Wert None ist, und None wird zurückgegeben.

print(d.setdefault('k6'))
# None

print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': None, 'k5': 5, 'k6': None}

Wenn der im ersten Argument angegebene Schlüssel bereits vorhanden ist, WIRD der Wert für diesen Schlüssel unverändert zurückerstattet.

print(d.setdefault('k1', 100))
# 1

print(d.setdefault('k1', -100))
# 1

print(d.setdefault('k1'))
# 1

print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': None, 'k5': 5, 'k6': None}