Как отсортировать кортежи по двум ключам в python?

Пользователь

от jorge , в категории: Python , 4 месяца назад

Как отсортировать кортежи по двум ключам в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jazmyne , 4 месяца назад

@jorge 

Для сортировки кортежей по двум ключам в Python можно использовать функцию sorted() и параметр key, который принимает функцию, возвращающую кортеж из двух значений, указывающих на первый и второй ключи соответственно.


Например, для сортировки кортежей по возрастанию первого ключа и убыванию второго ключа можно написать следующий код:

1
2
3
my_tuples = [('one', 3), ('two', 1), ('three', 2), ('four', 2)]
sorted_tuples = sorted(my_tuples, key=lambda x: (x[0], -x[1]))
print(sorted_tuples)


Здесь мы передаем функцию lambda в параметр key, которая обращается к первому и второму элементам кортежа x с помощью индексации [0] и [1], соответственно. Параметр key также содержит отрицательный знак перед x[1], чтобы сортировка по второму ключу выполнялась в порядке убывания.


Результат выполнения кода будет выглядеть следующим образом:

1
[('four', 2), ('one', 3), ('three', 2), ('two', 1)]