您當前的位置:首頁 > 繪畫

python2.7的sort函式預設採用什麼排序演算法,適用於怎樣的數列的排序?

作者:由 望京民工 發表于 繪畫時間:2022-11-10

python2.7的sort函式預設採用什麼排序演算法,適用於怎樣的數列的排序?望京民工2022-11-10 03:12:50

剛學python,想請教一下,預設的函式會不會影響執行效率。

python2.7的sort函式預設採用什麼排序演算法,適用於怎樣的數列的排序?2016-04-02 12:09:10

引用自

http://

zhidao。baidu。com/link?

url=wZD_oY7zrVdYLP6uvO1qUaiBRYvidsbw2e3xFYJf_sq-8lckxoQh7m5RJmTV6ZTveb_jHA_AzNqT_I8dR1Wnk_

@曹曉山

最近也在學習python,推薦《Python基礎教程》,雖然我只看了這本書……其中第二版40頁也詳細說明了高階排序的內容,使用的就是sort函式,當然下面的回答也是非常全面的。剛剛發現這是我的知乎首答,真是社會敗類啊,默默在知乎上混了好幾年……

———————————————————————————————————————————

Python中的sort()函式是序列的內部函式,函式原型:

L。sort(cmp=None, key=None, reverse=False)

函式作用:它是把L原地排序,也就是使用後並不是返回一個有序的序列副本,而是把當前序列變得有序。

Python中sort()引數說明:

(1) cmp引數

cmp接受一個函式,拿整形舉例,形式為:

def f(a,b):

return a-b

如果排序的元素是其他型別的,如果a邏輯小於b,函式返回負數;a邏輯等於b,函式返回0;a邏輯大於b,函式返回正數就行了。

(2) key引數

key也是接受一個函式,不同的是,這個函式只接受一個元素,形式如下:

def f(a):

return len(a)

key接受的函式返回值,表示此元素的權值,sort將按照權值大小進行排序

(3) reverse引數

接受False 或者True 表示是否逆序

Python中sort()函式舉例:

(1)按照元素長度排序

L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]

def f(x):

return len(x)

sort(key=f)

print L

//輸出:

//[{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}]

(2)按照每個字典元素裡面key為1的元素的值排序

L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}]

def f2(a,b):

return a[1]-b[1]

L。sort(cmp=f2)

print L

//輸出:

//[{1: 1, 2: 4, 5: 6}, {1: 3, 6: 3}, {1: 5, 3: 4}, {1: 9}]

標簽: 函式  Sort  Key  排序  Python