Sortuj według wielu kluczy przy użyciu różnych kolejności [duplikat]
Możliwy duplikat:
Jak pisać funkcje sortowania kluczy Pythona dla malejących wartości
W Pythonie 3 dość łatwo jest posortować listę obiektów leksykograficznie za pomocą wielu kluczy. Na przykład:
items.sort(key = lambda obj: obj.firstname, obj.lastname)
Thereverse
Argument pozwala określić, czy chcesz kolejności rosnącej, czy malejącej. Ale co zrobić w przypadku, gdy chcesz sortować według wielu kluczy, ale chcesz sortować według kolejności malejącej dla pierwszego klucza i kolejności rosnącej dla drugiego?
Załóżmy na przykład, że mamy obiekt z dwoma atrybutami,points
iname
, gdziepoints
jestint
iname
jeststr
. Chcemy posortować listę tych obiektów wedługpoints
wzstępujący kolejność (aby obiekt z największą liczbą punktów pojawił się jako pierwszy), ale dla obiektów o równej liczbiepoints
, chcemy je sortować wedługname
w alfabecie (rosnąco) zamówienie.
Jak można to osiągnąć?