Часто бывает полезно использовать namedtuple. Например, у вас есть словарь имя и оценка, и вы хотите отсортировать по «счет»:
import collections
Player = collections.namedtuple('Player', 'score name')
d = {'John':5, 'Alex':10, 'Richard': 7}
сортировка с низким счетом первым:
worst = sorted(Player(v,k) for (k,v) in d.items())
сортировочного с наибольшим количеством очков первый:
best = sorted([Player(v,k) for (k,v) in d.items()], reverse=True)
Порядок «ключ» и «значение» в перечисленных кортежах (значение, ключ), но теперь вы можете получить имя и оценку, скажем, второго лучшего игрока (index = 1) очень Pythonically
player = best[1]
player.name
'Richard'
player.score
7
дублировать http://stackoverflow.com/questions/613183/sort-a-dictionary-in-python-by-the-value –
Не простофиля. Другой хочет сортировать словарь, что невозможно. Я хочу перебирать словарь в отсортированном порядке. – mike
и код в точности то же самое. – SilentGhost