一、sort函式
sort函式是序列的內部函式
函式原型:
l.sort(cmp=none, key=none, reverse=false)
函式作用:
它是把l原地排序,也就是使用後並不是返回乙個有序的序列副本,而是把當前序列變得有序
引數說明:
(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 表示是否逆序
sort舉例:
(1)按照元素長度排序
l = [,,,]
deff(x):
return
len(x)
sort(key=f)
printl
輸出:
[, , , ]
(2)按照每個字典元素裡面key為1的元素的值排序
l= [,,,]
def
f2(a,b):
returna[1
]-b[1]
l.sort(cmp=f2)
l
輸出:
[, , , ]
二、sorted函式
sorted函式是內建函式,他接受乙個序列,返回有序的副本
他與sort的唯一區別就是會返回副本
python的排序函式sort,sorted在列表排序和字典排序中的應用詳解和舉例
python 列表list中內建了乙個十分有用的排序函式sort,sorted,它可以用於列表的排序,以下是例子。
a = [5,2,1,9
,6]
>>> sorted(a) #將a從小到大排序,不影響a本身結構
[1, 2,
5, 6,
9] >>> sorted(a,reverse = true
)
#將a從大到小排序,不影響a本身結構
[9, 6,
5, 2,
1] >>> a.sort() #將a從小到大排序,影響a本身結構
>>> a
[1, 2,
5, 6,
9] >>> a.sort(reverse = true
)
#將a從大到小排序,影響a本身結構
>>> a
[9, 6,
5, 2,
1] 注意,a.sort() 已改變其結構,b = a.sort() 是錯誤的寫法!
>>> b = ['aa'
,'bb'
,'bb'
,'zz'
,'cc'
] >>> sorted(b)
['bb'
, 'cc'
, 'aa'
, 'bb'
, 'zz'
]
#按列表中元素每個字母的ascii碼從小到大排序,如果要從大到小,請用sorted(b,reverse=true)下同
>>> c =['ccc'
, 'bb'
, 'ffff'
, 'z'
] >>> sorted(c,key=len) #按列表的元素的長度排序
['z'
, 'bb'
, 'ccc'
, 'ffff'
] >>> d =['ccc'
, 'bb'
, 'ffff'
, 'z'
] >>> sorted(d,key = str.lower ) #將列表中的每個元素變為小寫,再按每個元素中的每個字母的ascii碼從小到大排序
['bb'
, 'ccc'
, 'ffff'
, 'z'
] >>> def
lastchar(s):
return
s[-1
] >>> e = ['abc'
,'b'
,'aaz'
,'ef'
] >>> sorted(e,key = lastchar) #自定義函式排序,lastchar為函式名,這個函式返回列表e中每個元素的最後乙個字母
['b'
, 'abc'
, 'ef'
, 'aaz'
]
#sorted(e,key=lastchar)作用就是 按列表e中每個元素的最後乙個字母的ascii碼從小到大排序
>>> f = [,,]
#列表中的元素為字典
>>> def
age(s):
return
s['age'
] >>> ff = sorted(f,key = age) #自定義函式按列表f中字典的age從小到大排序
[, , ]
>>> f2 = sorted(f,key = lambda
x:x[
'age'
])
#如果覺得上面定義乙個函式**不美觀,可以用lambda的形式來定義函式,效果同上
Python sort sorted函式詳解
一 sort函式 sort函式是序列的內部函式 函式原型 l.sort cmp none,key none,reverse false 函式作用 它是把l原地排序,也就是使用後並不是返回乙個有序的序列副本,而是把當前序列變得有序 引數說明 1 cmp引數 cmp接受乙個函式,拿整形舉例,形式為 de...
Python sort sorted函式詳解
一 sort函式 sort函式是序列的內部函式 函式原型 l.sort cmp none,key none,reverse false 函式作用 它是把l原地排序,也就是使用後並不是返回乙個有序的序列副本,而是把當前序列變得有序 引數說明 1 cmp引數 cmp接受乙個函式,拿整形舉例,形式為 de...
python sort sorted 排序詳解
python中,list型別內建了sort 方法用於排序。當然,python還有內建的全域性sorted 方法,用於可迭代序列的排序。這兩個方法大部分的用法是相同的,最大的不同在於,sort 方法不會生成乙個新的list,而是在原有的list上進行修改 sorted 方法則是生成乙個新的可迭代序列。...