sorted
iterable:是可迭代類型;
cmp:用于比較的函數(shù),比較什么由key決定,有默認值鸵闪,迭代集合中的一項;
key:用列表元素的某個屬性和函數(shù)進行作為關(guān)鍵字,有默認值暑诸,迭代集合中的一項;
reverse:排序規(guī)則. reverse = True 或者 reverse = False蚌讼,有默認值。
返回值:是一個經(jīng)過排序的可迭代類型个榕,與iterable一樣篡石。
注;一般來說西采,cmp和key可以使用lambda表達式凰萨。
舉例:
M=[('a', 1), ('b', 2), ('c', 6), ('d', 4), ('e', 3)]
若:sorted(l, key=lambda x:x[0])
則[('a', 1), ('b', 2), ('c', 6), ('d', 4), ('e', 3)]
若:sorted(l, key=lambda x:x[1])
則:[('a', 1), ('b', 2), ('e', 3), ('d', 4), ('c', 6)]
舉例
L = [('b',2),('a',1),('c',3),('d',4)]
>>>print?sorted(L,cmp=lambda x,y:cmp(x[1],y[1]))
[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
比較兩個維度的大小。
Python3中已經(jīng)不能使用cmp()函數(shù)了械馆,被如下五個函數(shù)替代:
import operator? ? ? #首先要導入運算符模塊
operator.gt(1,2)? ? ? #意思是greater than(大于)
operator.ge(1,2)? ? ? #意思是greater and equal(大于等于)
operator.eq(1,2)? ? ? #意思是equal(等于)
operator.le(1,2)? ? ? #意思是less and equal(小于等于)
operator.lt(1,2)? ? ? #意思是less than(小于)