Как я могу отсортировать список пар, используя второй ключ в Python? - PullRequest
3 голосов
/ 12 мая 2019

У меня есть список вложенных списков:

e = [['Tina', 37.2], ['Harsh', 39], ['Harry', 37.21], ['Berry', 37.21], ['Akriti', 41]]

Как вы сортируете по числовому значению, но имена «следуют» за «оценкой»? Я мог бы использовать dict, но я думаю, что это упускает из виду.

Ответы [ 3 ]

1 голос
/ 12 мая 2019

Вы можете отсортировать список с помощью пользовательского ключа:

result = sorted(e, key = lambda x : x[1])
1 голос
/ 12 мая 2019
e.sort(key=lambda item: item[1])
0 голосов
/ 12 мая 2019

В вашем примере Гарри и Берри имеют одинаковое значение.

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

e = [['Tina', 37.2], ['Harsh', 39], ['Harry', 37.21], ['Berry', 37.21], ['Akriti', 41]]

e.sort(key=lambda x:(x[1], x[0]))

print(e)
#[['Tina', 37.2], ['Berry', 37.21], ['Harry', 37.21], ['Harsh', 39], ['Akriti', 41]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...