python sorted函式多條件排序是怎麼回事

2022-08-19 02:21:12 字數 817 閱讀 6594

首先,要知道sorted 內部實現使用了歸併排序,而歸併排序是穩定的排序,就是說當元素比不出大小時,其相對位置是不變的。

那麼,利用穩定排序的特性,key函式有幾個返回值就排序幾次,先排序次要條件,後排序主要條件,用主要條件覆蓋次要條件,主要條件相同時,又不會改變之前排好的次要條件的相對位置,就實現了多條件排序。

給我們的直觀效果是,主要條件排不出先後順序的元素,就按照次要條件排序。

在python中具體是如何實現的呢?

sorted(iterable, key, reverse)

key引數,接收乙個函式位址,用來設定排序條件,這裡我們經常使用匿名函式。

iterable的每乙個元素作為引數傳入key函式,key函式的返回值就是排序依據,當返回值為乙個元祖時,這個元祖中的多個元素即為多個排序條件,從前到後重要程度依次降低。

下面的例子,演示按照元素第三位、第二位、第一位的字典順序這三個條件對列表進行排序。

lis = ['

a1b', '

a2a', '

a3b', '

b5d', '

a4f', '

c3f', '

b3f', '

a6f', '

c1f', '

a1a'

]print(sorted(lis, key=lambda x: (x[2], x[1], x[0])))

排序結果:['a1a', 'a2a', 'a1b', 'a3b', 'b5d', 'c1f', 'b3f', 'c3f', 'a4f', 'a6f']

python sorted()函式用法

python 中的sorted 函式是內建的用於排序的函式 這是help sorted 的內容 help on built in function sorted in module builtin sorted sorted iterable,cmp none,key none,reverse fa...

Python sorted函式及用法

sorted 函式與 reversed 函式類似,該函式接收乙個可迭代物件作為引數,返回乙個對元素排序的列表。在互動式直譯器中測試該函式,可以看到如下執行過程 a 20,30,1.2,3.5,90,3.6 sorted a 1.2,3.5,3.6,20,30,90 a 20,30,1.2,3.5,9...

python sorted 函式的key引數

一 首先介紹下sort 與sorted 的區別 1 sort 是 list 的方法,只有 list 能用,而sorted 是內建函式,可以對所有可迭代的物件進行排序操作 2 list 的sort 方法是原地操作,無返回值,而內建函式sorted 方法是返回乙個新的 list。二 sorted 的用法...