Часто очень удобно использовать 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)
Порядок 'key' и 'value' в перечисленных кортежах (value, key), но теперь вы можете получить имя и счет, скажем, второго лучшего игрока (index = 1), очень похожего на Python это:
player = best[1]
player.name
'Richard'
player.score
7