1. 程式人生 > >python內建函式 sorted詳解

python內建函式 sorted詳解

sorted作為python的內建全域性方法,用於可迭代序列的排序。  

sorted函式接受3個引數:

sorted(iterable,key,reverse)

sorted函式有以下特點:

1)對列表排序,返回的物件不會改變原列表

>>> list =[1,2,3,6,4,5]
>>> list
[1, 2, 3, 6, 4, 5]
>>> sorted(list)
[1, 2, 3, 4, 5, 6]
>>> sorted(list,reverse=False)
[1, 2, 3, 4, 5, 6]
>>> list
[1, 2, 3, 6, 4, 5]
>>> sorted(list,reverse=True)
[6, 5, 4, 3, 2, 1]
>>> list
[1, 2, 3, 6, 4, 5]

2)根據自定義規則進行排序,通過引數key來改變排序的規則

list=[1,3,4,5,6,8]
>>> sorted(list,key =lambda x:abs(5-x))
[5, 4, 6, 3, 8, 1]

>>> list
[1, 3, 4, 5, 6, 8]

通過key引數可以進行更加複雜的排序,如可以對元組構成的列表進行排序,自定義類排序,亦可根據key和lambda的結合進行多欄位排序。

sorted的高階使用方式主要是通過key實現的。key接受的值,表示此元素的權值,sort將按照權值大小進行排序。

 

內建函式sorted與list的方法sort的區別:

用法是相同的,最大的不同在於,sort()方法不會生成一個新的list,而是在原有的list上進行修改;sorted()方法則是生成一個新的可迭代序列