@Proritsatel

Как отсортировать список при помощи lambda?

Доброго времени суток!
Имеется список:
lst = ['1:ooo', '1:ii', '1:uuu', '2:dd','=:nnn' , '=:gg', '2:ee','2:sss' , '2:aa']

Мне нужно получить список вида:
["1:ooo", "1:uuu", "2:sss", "=:nnn", "1:ii", "2:aa", "2:dd", "2:ee", "=:gg"]

Что я делаю:
Сортирую по трём параметрам: по длине, по первому символу, и по символу заполнителю по алфавиту.
lst.sort(key=lambda x:(len(x), x[0], x[2]))
Я получаю:
['1:ii', '2:aa', '2:dd', '2:ee', '=:gg', '1:ooo', '1:uuu', '2:sss', '=:nnn']


Как я понимаю, мне надо сортировать по длине, в обратном порядке, но как это задать я не знаю, задать получается только в конце кортежа:
lst.sort(key=lambda x:(len(x), x[0], x[2]), reverse=True)

Но тогда получается совсем не то:
['=:nnn', '2:sss', '1:uuu', '1:ooo', '=:gg', '2:ee', '2:dd', '2:aa', '1:ii']


Помогите решить эту проблему
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
@deliro
Агрессивное программирование
Поставь минус перед len, будет в обратном порядке по длине
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы