1.sort()
list類型有一個自帶的排序函數sort()
list.sort(cmp=None, key=None, reverse=False)
參數說明:
(1) cmp參數
cmp接受一個函數,來確定比較方式,默認的是:
def f(a,b): return a-b
返回負數就是a<b。(升序)
所以我們如果要想按降序排序,可以這么定義cmp:
list.sort(cmp=lambda x,y:y-x)
python3里面取消了這個參數。
(2) key參數
key也是接受一個函數,不同的是,這個函數只接受一個元素,key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序,例如我們根據字符串長度來排序:
list.sort(key=lambda x:len(x))
(3) reverse參數
接受False 或者True 表示是否逆序
注意:sort函數排序后直接改變了原序列。與此不同的是sorted()函數:
2.sorted()
sorted(iterable, cmp=None, key=None, reverse=False)
參數的含義都和sort一樣,唯一的區別就是它返回的是一個排了序的副本,不改變原來iterable的值。