Finden Sie alle Schlüssel-Elemente um den gleichen Wert in Dicts
Ich habe eine Frage über Dictionaries in Python.
hier ist es:
Habe ich ein dict wie dict = { 'abc':'a', 'cdf':'b', 'gh':'a', 'fh':'g', 'hfz':'g' }
Nun möchte ich, um alle Schlüssel-Elemente um den gleichen Wert, und speichern Sie es in eine neue dict.
Den neuen Dict sollte so Aussehen:
new_dict = { 'b':('cdf'), 'a':('abc','gh'), 'g':('fh','hfz')}
Verwenden Sie nicht "dict" als variable Namen, wie es der name der builtin-Funktion.
InformationsquelleAutor SnowBallz | 2011-02-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du gut mit Listen anstelle von Tupeln in das neue Wörterbuch, das Sie verwenden können,
Wenn Sie wollen, vermeiden die Verwendung von
defaultdict
Sie könnte auch tun,InformationsquelleAutor Sven Marnach
Hier ist eine naive Implementierung. Jemand mit besseren Python-Fähigkeiten können Sie wahrscheinlich machen es prägnant und genial.
Diese produziert
InformationsquelleAutor Adam Lear
Wenn Sie konkret machen wollen Tupel als Werte in Ihre neue Wörterbuch Sie können immer noch defaultdict, und verwenden Tupel Verkettung. Diese Lösung funktioniert in Python 3.4+:
Produzieren
Dies wird wahrscheinlich langsamer sein, als die Erzeugung eines dictionary-list einfügen, und erstellen Sie die Objekte, die gesammelt werden. Also, Sie können bauen Sie Ihr Wörterbuch aus Listen, und ordnen Sie es in Tupeln:
Geben wird, das gleiche Ergebnis wie oben.
InformationsquelleAutor pcurry