In Python habe ich ein Wörterbuch. Wie ändere ich die Schlüssel dieses Wörterbuchs?
Sagen wir, ich habe ein ziemlich Komplexes Wörterbuch.
{'fruit':'orange','colors':{'dark':4,'light':5}}
Jedenfalls, mein Ziel ist es, Scannen jeden Schlüssel in dieser komplexen multi-level-Wörterbuch. Hängen Sie dann, "abc" am Ende von jedem Schlüssel.
So, dass es sein wird:
{'fruitabc':'orange','colorsabc':{'darkabc':4,'lightabc':5}}
Wie würden Sie das tun?
Kommentar zu dem Problem
Sie wollen
'Licht':5
oder 'lightabc':5
? InformationsquelleAutor der Frage TIMEX | 2010-02-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tasten können nicht geändert werden. Müssen Sie fügen Sie einen neuen Schlüssel mit dem geänderten Wert dann entfernen Sie die alte ein, oder erstellen Sie ein neues dict mit einem dict-comprehension oder ähnliches.
InformationsquelleAutor der Antwort Ignacio Vazquez-Abrams
Z.B. so:
Diese wird append "abc", um jeden Schlüssel im dictionary und jeder Wert, ist ein Wörterbuch.
EDIT: Es gibt auch eine wirklich Coole Python-3-version, check it out:
InformationsquelleAutor der Antwort AndiDog
InformationsquelleAutor der Antwort John La Rooy
Mein Verständnis ist, dass Sie nicht ändern können, den Schlüssel, und dass Sie brauchen, um einen neuen Satz von Schlüsseln, und weisen Sie Ihre Werte an, die denen der original-Schlüssel zeigt.
Ich würde so etwas machen:
InformationsquelleAutor der Antwort Andrew
Verwende ich die folgende utility-Funktion, die ich geschrieben habe, das dauert ein Ziel dict und weiteren dict-mit der übersetzung und schaltet alle Tasten nach es:
Also mit den ursprünglichen Daten:
Erhalten wir die folgenden:
InformationsquelleAutor der Antwort Yuval Adam
InformationsquelleAutor der Antwort Greg Bacon
Sowas
Ich irgendwie wie funktionalen Stil, können Sie Lesen gerade die Letzte Zeile und sehen, was es tut 😉
InformationsquelleAutor der Antwort Jochen Ritzel
hier ist eine enge, kleine Funktion:
für Ihr spezielles problem:
InformationsquelleAutor der Antwort mgoldwasser
Man könnte dies mit der Rekursion:
InformationsquelleAutor der Antwort unutbu
sollten Sie auch Bedenken, dass es die Möglichkeit von verschachtelten dicts in verschachtelten Listen, die nicht unter die oben genannten Lösungen. Diese Funktion anzeigen ein Präfix und/oder einen Suffix zu jedem key innerhalb des dict.
InformationsquelleAutor der Antwort Gerald Bäck
InformationsquelleAutor der Antwort Charlie Zhu
Ich benutze diese für die Konvertierung von docopt POSIX-konform Kommandozeilen-Schlüssel zu PEP8 Schlüssel
(z.B. "--option" --> "option", "" --> "option2", "FILENAME" --> "filename")
InformationsquelleAutor der Antwort tenfishsticks
Hallo ich bin ein neuer Benutzer zu finden, aber eine Antwort auf die gleiche Frage, kann ich nicht bekommen, alles voll funktionsfähig zu meinem problem, ich mache dieses kleine Stück Kuchen mit einer vollständigen geschachtelten ersetzen von Schlüsseln, können Sie Liste senden dict oder dict.
Endlich können Sie Ihre dicts kann Liste mit dict oder mehr dict verschachtelt und es ist alles ersetzt mit Ihrem neuen key braucht.
Zu deuten, die Schlüssel ersetzen will mit einem neuen Schlüssel verwenden "auf" parameter senden eines dict.
Siehe am Ende mein kleines Beispiel.
P/D: tut mir Leid mein schlechtes Englisch. =)
InformationsquelleAutor der Antwort Jorge Cuesta
Einer funktionalen (und flexible) Lösung. Dies ermöglicht eine beliebige Transformation angewendet werden, die den Tasten (rekursiv für embedded-dicts):
Probieren Sie es aus; zuerst definieren wir unseren Schlüssel-die transformation-Funktion, dann gilt es zum Beispiel:
InformationsquelleAutor der Antwort sxc731