Как отменить сортировку вложенного списка, начиная с заглавных записей? - PullRequest
0 голосов
/ 03 декабря 2018

Список r:

r= [['Paris', 10], ['amsterdam', 5], ['London', 18], ['london', 15], ['Berlin', 2], ['Stockholm', 4], ['oslo', 14], ['helsinki', 16], ['Zurich', 17]] 

Если я делаю обратную сортировку:

sorted(r, reverse=True)

[['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5], ['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2]]

Я хочу начать с элементов верхнего регистра и элементов нижнего регистра.

[ ['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2], ['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5]]

Есть ли в Python3 простой способ отсортировать список по своему желанию?

1 Ответ

0 голосов
/ 03 декабря 2018

Все возможно с пользовательской функцией key:

>> sorted(r, key=lambda e: (not e[0].islower(), e[0]), reverse=True)
[['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2],
 ['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...