如何反转从大写条目开始对嵌套列表进行排序?

Rem*_*man 9 python sorting list case

清单r:

r= [['Paris', 10], ['amsterdam', 5], ['London', 18], ['london', 15], ['Berlin', 2], ['Stockholm', 4], ['oslo', 14], ['helsinki', 16], ['Zurich', 17]] 
Run Code Online (Sandbox Code Playgroud)

如果我做反向排序:

sorted(r, reverse=True)

[['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5], ['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2]]
Run Code Online (Sandbox Code Playgroud)

我想要的是从大写元素开始,而不是小写元素.

[ ['Zurich', 17], ['Stockholm', 4], ['Paris', 10], ['London', 18], ['Berlin', 2], ['oslo', 14], ['london', 15], ['helsinki', 16], ['amsterdam', 5]]
Run Code Online (Sandbox Code Playgroud)

Python3中是否有一种简单的方法可以按需要对列表进行排序?

Dee*_*ace 17

使用自定义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]]
Run Code Online (Sandbox Code Playgroud)