【发布时间】:2020-11-15 21:03:13
【问题描述】:
所以,我有一个名称列表,我正在尝试对列表进行排序,以使以元音开头的名称首先位于列表中,然后定位那些不以元音开头的名称在它们之后并按字母顺序排序。
为此,我编写了以下代码,但是结果不是我所期望的:
a = ["anna", "ollie", "tim", "bob", "trevor", "susan"]
print(sorted(a, key=lambda x: (x[0] in 'aeiou', x)))
结果:
['bob', 'susan', 'tim', 'trevor', 'anna', 'ollie']
我认为根据我的代码,名称:“anna”和“ollie”应该首先定位,然后是其余名称,因为这两个名称将在我的 lambda 函数的第一部分返回 true。
如果有人能解释为什么我会得到这个结果以及我需要做什么才能得到我想要的结果,我将不胜感激。
谢谢!!
【问题讨论】: