Я думаю, что вы можете просто отменить ключи сортировки для сортировки по убыванию дважды:
>>> lst = [[1,4], [3,3], [3,2] ,[1,2], [1,3], [2,3], [1,5]]
>>> sorted(lst, key=lambda x: (-x[0], -x[1]))
[[3, 3], [3, 2], [2, 3], [1, 5], [1, 4], [1, 3], [1, 2]]
(-x[0], -x[1])
сначала отсортирует по первому элементу, затем, если возникнут какие-либо связи, сортирует по второму элементу, оба в по убыванию. Мы можем сделать его нисходящим, отрицая со знаком минус -
.
Но, как подсказывает @ Heap Overflow , нам не нужно этого делать, потому что мы можем просто передать reverse=True
, и sorted()
будет естественно сортировать по первому элементу, затем второй в порядке убывания. Нет необходимости в ключе сортировки.
Вы можете проверить это, выполнив следующее:
>>> sorted(lst, reverse=True)
[[3, 3], [3, 2], [2, 3], [1, 5], [1, 4], [1, 3], [1, 2]]
>>> sorted(lst, key=lambda x: (x[0], x[1]), reverse=True)
[[3, 3], [3, 2], [2, 3], [1, 5], [1, 4], [1, 3], [1, 2]]
, которые оба дают одинаковые результаты.