Сортировка по нескольким ключам в разном порядке [дублировать]

Possible Duplicate:
How to write Python sort key functions for descending values

В Python 3 довольно легко отсортировать список объектов лексикографически, используя несколько ключей. Например:

items.sort(key = lambda obj: obj.firstname, obj.lastname)

Аргумент reverseпозволяет вам указать, хотите ли вы восходящий или нисходящий порядок. Но что делать, если вы хотите отсортировать по нескольким ключам, но хотите отсортировать по убыванию для первого ключа и по возрастанию для второго?

Например, предположим, что у нас есть объект с двумя атрибутами, pointsи name, где points— это int, а name— это str. Мы хотим отсортировать список этих объектов по pointsв по убыванию в порядке (так, чтобы объект с наибольшим количеством точек был первым ), но для объектов с равным количеством points, мы хотим отсортировать их по nameв алфавитном порядке(восходящий)порядок.

Как этого добиться?

44
задан Community 23 May 2017 в 12:18
поделиться