Skip to content

Wörterbuchschlüssel in Python ändern

Python

Dieser Artikel, wie man den Schlüssel eines Wörterbuchs (dict) in Python ändert.

  • Fügen Sie ein neues Element hinzu und entfernen Sie dann das alte
    • Mit del Anweisung
    • Mit pop()-Methode
  • Definieren Sie eine Funktion, um den Schlüssel eines Wörterbuchs zu ändern
    • Wenn der alte Schlüssel nicht vorhanden ist, fügen Sie ein neues Element hinzu
    • Wenn der alte Schlüssel nicht existiert, tun Sie nichts

Wenn Sie den Wert ändern möchten, geben Sie einfach den Schlüssel an und weisen Sie einen neuen Wert zu. Nichts finden Sie im folgenden Artikel.

Fügen Sie ein neues Element hinzu und entfernen Sie dann das alte

dict hat keine Methode, um den Schlüssel zu ändern, fügen Sie also ein neues Element mit dem neuen Schlüssel und dem ursprünglichen Wert hinzu und entfernen Sie dann das alte Element.

Weitere Informationen zum Entfernen eines Elements aus dem Wörterbuch FINDEN SIE im following Artikel

Mit del Anweisung

Wenn Sie die del-Anweisung verwenden, können Sie Folgendes tun.

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

d['k10'] = d['k1']
del d['k1']

print(d)
# {'k2': 2, 'k3': 3, 'k10': 1}

Mit pop()-Methode

Die Methode pop() can used Werden, um ein Element zu entfernen und gleichzeitig seinen Wert abzurufen.

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

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

print(d)
# {'k2': 2, 'k3': 3}

Die Verwendung von pop() ist einfacher als die Verwendung von del.

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

d['k10'] = d.pop('k1')

print(d)
# {'k2': 2, 'k3': 3, 'k10': 1}

Beachten Sie, dass standardmäßig ein Fehler auftritt, wenn ein nicht vorhandener Schlüssel als erstes Argument von pop() angegeben WIRD.

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

# print(d.pop('k10'))
# KeyError: 'k10'

If das zweite Argument von pop() angegeben WIRD, is es den Wert ohne Fehler zurück. Das ursprüngliche Dictionary-Objekt bleibt unverändert.

print(d.pop('k10', None))
# None

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

Dies kann used Werden, um einen Standardwert festzulegen, wenn Sie versuchen, einen Schlüssel zu ändern, der nicht vorhanden ist. Es WIRD in der beschriebenen Funktion verwendet.

Definieren Sie eine Funktion, um den Schlüssel eines Wörterbuchs zu ändern

Hier sind einige Beispiele für Funktionen zum Ändern des Schlüssels eines Wörterbuchs.

Wenn der alte Schlüssel nicht vorhanden ist, fügen Sie ein neues Element hinzu

Mit pop() kann beispielsweise folgende Funktion definiert werden.

Das erste Argument ist das Zielwörterbuch, das zweite der alten Schlüssel und das dritte der neuen Schlüssel.

def change_dict_key(d, old_key, new_key, default_value=None):
    d[new_key] = d.pop(old_key, default_value)

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key(d, 'k1', 'k10')
print(d)
# {'k2': 2, 'k3': 3, 'k10': 1}

Wenn ein nicht vorhandener Schlüssel als alter Schlüssel angegeben WIRD, WIRD er als neues Element mit dem im vierten Argument angegebenen Wert hinzugefügt (standardmäßig „None“).

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key(d, 'k10', 'k100')
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k100': None}

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key(d, 'k10', 'k100', 100)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k100': 100}

Wird als drittes Argument ein vorhandener Schlüssel angegeben (neuer Schlüssel), WIRD der Wert des vorhandenen Schlüssels überschrieben.

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

Wenn Sie den ursprünglichen Wert erhalten möchten, wenn Sie einen vorhandenen Schlüssel als neuen Schlüssel angeben, verwenden Sie die Methode setdefault().

def change_dict_key_setdefault(d, old_key, new_key, default_value=None):
    d.setdefault(new_key, d.pop(old_key, default_value))

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

Wenn die neue Taste keine vorhandene Taste ist, ist das Verhalten dasselbe wie bei der ersten Funktion.

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key_setdefault(d, 'k1', 'k10')
print(d)
# {'k2': 2, 'k3': 3, 'k10': 1}

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key_setdefault(d, 'k10', 'k100')
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k100': None}

Wenn der alte Schlüssel nicht existiert, tun Sie nichts

Wenn Sie nichts tun möchten, wenn der angegebene Schlüssel nicht vorhanden ist, verwenden Sie den in-Operator.

def change_dict_key_exist(d, old_key, new_key):
    if old_key in d:
        d[new_key] = d.pop(old_key)

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key_exist(d, 'k1', 'k10')
print(d)
# {'k2': 2, 'k3': 3, 'k10': 1}

d = {'k1': 1, 'k2': 2, 'k3': 3}
change_dict_key_exist(d, 'k10', 'k100')
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}

Wird als drittes Argument ein vorhandener Schlüssel angegeben (neuer Schlüssel), WIRD der Wert des vorhandenen Schlüssels überschrieben.

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

Wenn SIE wie im Beispiel den ursprünglichen Wert beibehalten möchten, WENN SIE einen vorhandenen Schlüssel als neuen Schlüssel angeben, verwenden Sie die Methode setdefault().

def change_dict_key_exist_setdefault(d, old_key, new_key):
    if old_key in d:
        d.setdefault(new_key, d.pop(old_key))

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