目前正在使用.lower()函数,只是不想问一个小问题,它的解释是

问题描述 投票:0回答:1
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吗?

python lambda lowercase
1个回答
2
投票

看来您想要str.islower

str.islower

使用当前方法,您只用小写所有字符串,因此只按字母顺序对它们进行排序。

现在,您正在根据d.sort(key=lambda s: (not s.islower(), s)) print(d) # ['abc', 'badad1', 'AAab', 'Ejc'] 返回的布尔值和字符串本身(这似乎是您想要的)进行排序:

islower
© www.soinside.com 2019 - 2024. All rights reserved.