Сортировка кортежей Python
У меня есть список кортежей в моем питонном коде Blender
scores=[(1489,"Sean"), (2850,"Bob"), (276,"Crap Player"), (78495, "Great Player"), (8473, "Damian"), (4860, "Andy"), (0, "Stephen")]
Я пытаюсь сортировать их по их оценке, используя этот
sorted(scores, key=lambda score: score[0], reverse=True)
но это не работает. Понятия не имею почему. Любые советы?
Я подумал, что лучше всего реализовать новый класс Score
с полями name
и Score
EDIT:
Спасибо, ребята за быстрый ответ
это не давало мне ошибок с методом sorted
, но не сортировалось.
Я использовал sort()
, и он работает.
Я думаю, что python просто немного странный в Blender, возможно?
Спасибо!
Ответы
Ответ 1
Просто выполните:
print sorted(scores, reverse=True)
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]
вы можете использовать scores.sort(reverse=True)
, если вы хотите сортировать на месте, и, кстати, функция сортировки в случае списка кортежей по умолчанию сортирует по первому элементу, второй элемент.
Ответ 2
sorted()
возвращает отсортированную последовательность. Если вы хотите отсортировать список на месте, используйте list.sort()
.
Ответ 3
scores.sort(reverse=True)
>>> print scores
[(78495, 'Great Player'), (8473, 'Damian'), (4860, 'Andy'), (2850, 'Bob'), (1489, 'Sean'), (276, 'Crap Player'), (0, 'Stephen')]