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)