2017-09-26 80 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

接受...抱歉,延誤 –