Возможный дубликат:
Как написать функции сортировки ключей Python для нисходящих значений
В Python 3 довольно легко отсортировать список объектов лексикографически, используя несколько ключей. Например:
items.sort(key = lambda obj: obj.firstname, obj.lastname)
Аргумент reverse
позволяет указать, хотите ли вы восходящий или нисходящий порядок. Но что вы делаете в случае, когда хотите сортировать по нескольким клавишам, но хотите сортировать, используя порядок убывания для первого ключа, и порядок возрастания для второго?
Например, предположим, что у нас есть объект с двумя атрибутами points
и name
, где points
- int
, а name
- str
. Мы хотим отсортировать список этих объектов с помощью points
в порядке убывания (так, чтобы сначала был объект с наибольшим числом точек), но для объектов с равным числом points
мы хотим отсортировать их по name
в алфавитном порядке (по возрастанию).
Как это можно достичь?