d = ['AAab', 'abc', 'Ejc','badad1']
d.sort(key=lambda s: s.lower())
print(d)
输出为['AAab', 'abc', 'badad1', 'Ejc']
我很困惑我调用了一个较低的函数为什么它先返回我AAab,然后是abc,然后是badad1,然后是EJC
它不应该先返回abc,然后返回badad1,然后返回AAB,然后返回EJC吗?
看来您想要str.islower
:
str.islower
使用当前方法,您只用小写所有字符串,因此只按字母顺序对它们进行排序。
现在,您正在根据d.sort(key=lambda s: (not s.islower(), s))
print(d)
# ['abc', 'badad1', 'AAab', 'Ejc']
返回的布尔值和字符串本身(这似乎是您想要的)进行排序:
islower