2017-09-26 50 views
-3

在以下Python列表Python的高级排序在列表

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

,如果我们运用sorted(a, key=str.isupper)到列表中它给输出

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

任何人能解释这背后的原因是什么?

+4

你能否澄清什么让你感到困惑?那*不是你预期的顺序吗? *您期望的产出*,以什么为基础? – jonrsharpe

+0

我只是想知道它是如何出现的,即它背后的逻辑。 –

+3

那么你*写了*它,你有权访问所有的文档,你觉得怎么样? – jonrsharpe

回答

-1

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

str.isuppper适用于每个元素。

a = ['BB', 'zz', 'CC', 'aa'] 
a = [True, False, True, False] 

False(内部0)低于True(内部1)小。

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

所以,

a = ['zz', 'aa', 'BB', 'CC'] 
+0

是的,它解决了我的查询... –

+0

@SHIVASRAINA你能接受吗? –

+0

接受...抱歉,延误 –