Wie Sortiere ich ein Wörterbuch von Wert?

Habe ich ein Wörterbuch der Werte aus zwei Feldern in einer Datenbank: ein string-Feld und ein numerisches Feld. Die string-Feld ist einzigartig, so dass der Schlüssel des dictionary.

Ich kann irgendwie auf den Tasten, aber wie kann ich die Sortierung basierend auf den Werten?

Hinweis: ich habe gelesen, Stack Overflow Frage hier Wie Sortiere ich eine Liste der Wörterbücher, indem Sie einen Wert aus dem dictionary? und wahrscheinlich könnte sich ändern mein code, um eine Liste der Wörterbücher, aber da ich nicht wirklich brauchen, eine Liste der Wörterbücher, die ich wollte wissen, ob es eine einfachere Lösung zu Sortieren, entweder in aufsteigender oder absteigender Reihenfolge.

Die Wörterbuch-Daten-Struktur keine inhärente Reihenfolge. Sie Durchlaufen können, aber es gibt nichts, um zu garantieren, dass die iteration Folgen einer bestimmten Reihenfolge. Dies ist so beabsichtigt, damit Ihre beste Wette ist wahrscheinlich mit anohter Datenstruktur für die Darstellung.
"sorted()" kann arbeiten auf Wörterbücher (und liefert eine Liste von sortierten Schlüssel), so dass ich denke, er ist sich dessen bewusst. Ohne zu wissen, sein Programm, es ist absurd zu sagen, jemand Sie sind mit der falschen Datenstruktur. Wenn schnelle lookups sind, was Sie brauchen 90% der Zeit, dann ein dict ist wahrscheinlich das, was Sie wollen.
Alle drei Ausgänge (Schlüssel, Werte, beide) für die Sortierung Wörterbücher abgedeckt sind, hier in eine klare und prägnante Stil: stackoverflow.com/questions/16772071/sort-dict-by-value-python
Die Basisklasse kann nicht bestellt werden, aber OrderedDict ist natürlich.
In Python 3.6+ Wörterbücher bewahren, insertion um. Dies ist natürlich nicht das gleiche, wie die Möglichkeit der Sortierung nach Wert, aber auf der anderen Seite ist es nicht mehr gültig zu sagen, dass "dictionary-Datenstruktur nicht die Ordnung".

InformationsquelleAutor Gern Blanston | 2009-03-05

Schreibe einen Kommentar