【python學習筆記】Python中排序sorted()和list.sort()

說明

sorted 和list.sort 都接受key, reverse定製。但是區別是。list.sort()是列表中的方法,只能用於列表。而sorted可以用於任何可迭代的對象。list.sort()是在原序列上進行修改,不會產生新的序列。所以如果你不需要舊的序列,可以選擇list.sort()。 sorted() 會返回一個新的序列。舊的對象依然存在。

sort是容器的函數:sort(cmp=None, key=None, reverse=False)

sorted是python的內建函數:sorted(iterable, cmp=None, key=None, reverse=False)

參數解析:

  • cmp(Python3取消此參數):比較函數,比較什麼參數由key決定。例如:cmp(e1, e2) 是具有兩個參數的比較函數,返回值:負數(e1 < e2);0(e1 == e2);正數( e1 > e2)。
  • key:用列表元素的某個屬性或函數作爲關鍵字
  • reverse:排序規則,reverse=False爲升序排序;reverse=True爲降序排序
  • sorted多一個參數iterable:待排序的可迭代類型的容器

排序使用

基本排序

L = [5, 2, 3, 1, 4]
L.sort()
print L
>>> [1, 2, 3, 4, 5]

print sorted([5, 2, 3, 1, 4])
>>> [1, 2, 3, 4, 5]

根據參數key排序

L = [('b',2),('a',1),('c',3),('d',4)]
print sorted(L, key=lambda x:x[1]))
>>> [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

根據參數reverse排序

a=[1,2,5,3,9,4,6,8,7,0,12]
a.sort(reverse=False)
print a
>>> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12]

基於cmp函數排序

L = [('a', 90), ('b',90), ('e',80),('c',95)]
a = sorted(L, cmp=lambda x, y: cmp(x[0], y[0]))
print a
>>> [('e', 80), ('a', 90), ('b', 90), ('c', 95)]

leason | 個人博客

發佈了64 篇原創文章 · 獲贊 71 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章