4 回答

TA貢獻1875條經(jīng)驗 獲得超3個贊
Python中的sort()函數(shù)是序列的內(nèi)部函數(shù),函數(shù)原型:
1 | L.sort( cmp = None , key = None , reverse = False ) |
函數(shù)作用:它是把L原地排序,也就是使用后并不是返回一個有序的序列副本,而是把當前序列變得有序。
Python中sort()參數(shù)說明:
(1) cmp參數(shù)
cmp接受一個函數(shù),拿整形舉例,形式為:
12 | def f(a,b): return a - b |
如果排序的元素是其他類型的,如果a邏輯小于b,函數(shù)返回負數(shù);a邏輯等于b,函數(shù)返回0;a邏輯大于b,函數(shù)返回正數(shù)就行了。
(2) key參數(shù)
key也是接受一個函數(shù),不同的是,這個函數(shù)只接受一個元素,形式如下:
12 | def f(a): return len (a) |
key接受的函數(shù)返回值,表示此元素的權值,sort將按照權值大小進行排序
(3) reverse參數(shù)
接受False 或者True 表示是否逆序
Python中sort()函數(shù)舉例:
(1)按照元素長度排序
1234567 | 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的元素的值排序
1234567 | 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 }] |

TA貢獻1808條經(jīng)驗 獲得超4個贊
def g(u,v):
""" 定義比較兩個列表的方法:
以列表的第二個元素為對比參考
"""
return u[1] - v[1]
# 為sort指定比較函數(shù):g, x列表排序
x.sort(g)
# 還可以為sort的指定key
x.sort(key=lambda n:n[1])
#sort的key方法常用于復雜對象的簡單規(guī)則
#sort的cmp方法常用于復雜的對象比較規(guī)則
添加回答
舉報