Es kann oft sehr nützlich sein, namedtuple zu verwenden. Zum Beispiel haben Sie ein Wörterbuch des Namens und der Gäste und Sie wollen auf ‚Score‘ sortieren:
import collections
Player = collections.namedtuple('Player', 'score name')
d = {'John':5, 'Alex':10, 'Richard': 7}
mit dem niedrigsten Punktzahl Sortierung zuerst:
worst = sorted(Player(v,k) for (k,v) in d.items())
Sortierung mit der höchsten Punktzahl zuerst:
Die Reihenfolge von 'Schlüssel' und 'Wert' in den aufgeführten Tupeln ist (Wert, Schlüssel), aber jetzt können Sie den Namen und die Punktzahl von, sagen wir, den zweitbesten Spieler (Index = 1) sehr pythonisch so:
player = best[1]
player.name
'Richard'
player.score
7
Duplikat http://stackoverflow.com/questions/613183/sort-a-dictionary-in-python-by-the-value –
Nicht eine Betrogene. Der andere möchte ein Wörterbuch sortieren, was unmöglich ist. Ich möchte über ein Wörterbuch in sortierter Reihenfolge iterieren. – mike
und der Code ist genau der gleiche. – SilentGhost