Подтвердить что ты не робот

Сортировка кортежей 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, возможно?

Спасибо!

4b9b3361

Ответ 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')]