python內置函數sorted


python內置函數sorted

sorted與sort

sort:是對list排序的所用方法,是對已經存在的原列表進行操作,沒有返回值。

sorted:可以對所有可迭代的對象(元組、列表等)進行排序。返回一個新的列表,不會對原有的對象進行操作。

sorted語法

sorted(iterable,cmp=None,key=None,reverse=False)

iterable——可迭代對象(用來排序的列表、元組等)

cmp——比較的函數,兩個參數,參數值由迭代對象中取出,函數有返回值:大於則返回1,小於返回-1,等於返回0。

    具體寫法為:cmp=lambda x,y:x[1],y[1](x,y表示用來排序的元組或者列表等的元素,‘1’代表元素的下標)

key——主要用來進行比較的元素,只有一個參數,參數為迭代對象中取出的元素,指定可迭代對象的元素來進行排序。

    具體寫法為:key=lambda x:x[1](x表示排序的對象中的元素,‘1’表示元素的下標)

  cmp與key類似,但是cmp是2個參數,而key只有一個參數。對於待排序的對象,cmp會被多次調用,key只會被調用一次。

reverse——排序規則,reverse=True:降序;reverse=False升序(默認)。

實例

(不同的代碼編譯環境存在差異)

L=[('d',1),('a',4),('e',3),('c',2)]

print sorted(L,cmp=lambda x,y:x[1],y[1])#利用cmp函數對L中對象的數字升序排列

print sorted(L,cmp=lambda x,y:x[0],y[0],reverse=True) #利用cmp函數對L中對象的字母進行降序排列

print sorted(L,key=lambda x:x[0])#利用key函數對L中的元素的字母進行升序排列

print sorted(L,key=lambda x:x[1],reverse=True)#利用key函數對L中的元素的數字進行降序排列

print L#對L進行輸出

#輸出結果為:

[('d',1),('c',2),('e',3),('a',4)]

[('e',3),('d',1),('c',2),('a',4)]

[('a',4),('c',2),('d',1),('e',3)]

[('a',4),('e',3),('c',2),('d',1)]

[('d',1),('a',4),('e',3),('c',2)]#L沒有改變


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM