Ich möchte den Schlüssel eines Eintrags in einem Python-Wörterbuch ändern.
Gibt es einen einfachen Weg, dies zu tun?
python
dictionary
sequence
user469652
quelle
quelle
Antworten:
Einfach in 2 Schritten erledigt:
Oder in 1 Schritt:
was erhöht,
KeyError
wenndictionary[old_key]
undefiniert ist. Beachten Sie, dass dies wird löschendictionary[old_key]
.quelle
dict[new_value] = dict.pop(old_value, some_default_value)
vermeidenold_key
von der Position vonnew_key
.Wenn Sie alle Schlüssel ändern möchten:
Wenn Sie einen einzelnen Schlüssel ändern möchten: Sie können mit jedem der oben genannten Vorschläge fortfahren.
quelle
{ d1[key] : value for key, value in d.items() }
Pop'n'Fresh
quelle
In Python 2.7 und höher können Sie das Wörterbuchverständnis verwenden: Dies ist ein Beispiel, das mir beim Lesen einer CSV mit einem DictReader begegnet ist. Der Benutzer hatte alle Spaltennamen mit ':' versehen.
ori_dict = {'key1:' : 1, 'key2:' : 2, 'key3:' : 3}
um das nachfolgende ':' in den Tasten loszuwerden:
corrected_dict = { k.replace(':', ''): v for k, v in ori_dict.items() }
quelle
Da Wörterbücher zum Nachschlagen von Werten verwendet werden, können Sie sie nicht wirklich ändern. Das nächste, was Sie tun können, ist, den mit dem alten Schlüssel verknüpften Wert zu speichern, ihn zu löschen und dann einen neuen Eintrag mit dem Ersatzschlüssel und dem gespeicherten Wert hinzuzufügen. Einige der anderen Antworten veranschaulichen verschiedene Möglichkeiten, wie dies erreicht werden kann.
quelle
Wenn Sie ein komplexes Diktat haben, bedeutet dies, dass das Diktat ein Diktat oder eine Liste enthält:
quelle
Keine direkte Möglichkeit, dies zu tun, aber Sie können löschen und dann zuweisen
oder Massenschlüsseländerungen vornehmen:
quelle
d = { changeKey(k): v for k, v in d.items()}
So konvertieren Sie alle Schlüssel im Wörterbuch
Angenommen, dies ist Ihr Wörterbuch:
So konvertieren Sie alle Bindestriche in Unterstriche im Beispielwörterbuchschlüssel:
quelle
Angenommen, wir möchten die Schlüssel in die Listenelemente p = ['a', 'b'] ändern. Der folgende Code reicht aus:
und wir bekommen
quelle
Sie können denselben Wert vielen Schlüsseln zuordnen oder einfach einen Schlüssel entfernen und einen neuen Schlüssel mit demselben Wert erneut hinzufügen.
Zum Beispiel, wenn Sie Schlüssel-> Werte haben:
Es gibt keinen Grund, warum Sie nicht hinzufügen
purple->2
oder entfernenred->1
und hinzufügen könnenorange->1
quelle
Bei gleichzeitiger Änderung aller Tasten. Hier drücke ich die Schlüssel.
quelle
Ich habe diese genaue Antwort nicht gesehen:
Sie können dies sogar für Objektattribute tun. Machen Sie sie zu einem Wörterbuch, indem Sie dies tun:
Dann können Sie die Objektattribute wie ein Wörterbuch bearbeiten:
quelle