Встроенный sorted
считает каждый элемент итерируемого по очереди . Так, например, [0, 9, 0]
появляется первым, потому что 0 < 1
и 0 < 2
.
Чтобы помочь обрести интуицию, вы можете протестировать несколько примеров:
[0,9,0] < [1,1,1] # True
[0,9,0] < [0,8,0] # False
[1,1,1] < [2,1,1] # True
Итак, sorted
работает в соответствии с тем, как определяются операторы сравнения. Объекты последовательности в Python обычно поддерживают лексикографическое сравнение . Для сортировки по сумме каждого списка необходимо передать функцию в аргумент key
, в данном случае встроенный sum
:
res = sorted(L, key=sum)