Сортировка списка списков по нескольким критериям
У меня есть список списков. Как можно быстро отсортировать сначала по возрастанию первого элемента, если они одинаковые, то по убыванию второго?
some_list = [[3, 1], [-1, 5], [-1, 9], [4, 8]]
out:
[[-1, 9], [-1, 5], [3, 1], [4, 8]]
UPD: я смог найти только такую сортировку, но второе значение там тоже сортируется по возрастанию:
some_list.sort(key=lambda x:(x[0], x[1]))
Ответы (1 шт):
Автор решения: Xander
→ Ссылка
Нужно просто в функцию ключа сортировки добавить минус ко второму элементу.
some_list.sort(key=lambda x:(x[0], -x[1]))
# ^^^ Вот так
Потому что отсортировать элемент с обратным знаком по возрастанию - это то же самое, что отсортировать исходный элемент по убыванию.