列出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中有一种简单的方法可以根据需要对列表进行排序吗?

最佳答案

使用自定义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]]

关于python - 如何对以大写字母开头的嵌套列表进行反向排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53592424/

10-10 21:28