列表中的Python高级排序

列表中的Python高级排序,python,Python,在下面的python列表中 a = ['BB', 'zz', 'CC', 'aa'] 如果我们将sorted(a,key=str.isupper)应用到列表中,它的输出如下 ['zz', 'aa', 'BB', 'CC'] 有人能解释一下原因吗?在这种情况下,排序函数按升序对布尔列表进行排序 str.isupper应用于每个元素 a = ['BB', 'zz', 'CC', 'aa'] a = [True, False, True, False] False(内部0)小于Tru

在下面的python列表中

a = ['BB', 'zz', 'CC', 'aa']  
如果我们将
sorted(a,key=str.isupper)
应用到列表中,它的输出如下

['zz', 'aa', 'BB', 'CC']

有人能解释一下原因吗?

在这种情况下,排序函数按升序对布尔列表进行排序

str.isupper
应用于每个元素

a = ['BB', 'zz', 'CC', 'aa']  
a = [True, False, True, False]  
False
(内部0)小于
True
(内部1)

对于相同的
False
s和
True
s,不需要更改顺序

所以


你能澄清是什么让你困惑吗?这不是你想要的订单吗?你期望得到什么样的结果,基于什么?我只是想知道它是如何产生的,也就是它背后的逻辑。是你写的,你可以访问所有的文档,你觉得怎么样?我们的教授在课堂上给我们展示了这个排序。但我无法理解它是如何提供这些输出的,所以请询问他们。如果没有具体问题,答案可能是,例如:Timsort;这是一种稳定的类型;这是一个布尔值,不是字符串;或
False
。再说一次,你期望它会产生什么样的输出,为什么?是的,它解决了我的问题…@SHIVASRAINA你能接受这个吗?接受了。。。对不起,这是我的错delay@SHIVASRAINA非常感谢。
a = ['zz', 'aa', 'BB', 'CC']