Python教程:sorted()排序詳解
在本篇文章中,我們將詳細(xì)解釋Python中sorted()函數(shù)的用法,該函數(shù)用于對列表(list)進行排序。雖然說簡單也簡單,說復(fù)雜也復(fù)雜,但是一開始學(xué)習(xí)時可能會感到困惑。因此,我通過積累經(jīng)驗并閱讀英
在本篇文章中,我們將詳細(xì)解釋Python中sorted()函數(shù)的用法,該函數(shù)用于對列表(list)進行排序。雖然說簡單也簡單,說復(fù)雜也復(fù)雜,但是一開始學(xué)習(xí)時可能會感到困惑。因此,我通過積累經(jīng)驗并閱讀英文文章來理解該函數(shù),并將我的經(jīng)驗分享給大家。
普通列表排序
首先,讓我們通過例子來說明sorted()函數(shù)的具體用法。假設(shè)我們有一個列表a,我們可以直接使用sorted()方法對其進行排序,返回一個已排序的新列表b。
a [4, 2, 1, 3]
b sorted(a)
print(b) 輸出結(jié)果為[1, 2, 3, 4]
基于元組的列表排序
如果列表a是由元組構(gòu)成的列表,情況就會變得復(fù)雜一些。這時候,我們需要使用參數(shù)key來指定排序的關(guān)鍵詞。以下是一個示例命令:
a [(1, 3), (2, 1), (3, 2)]
b sorted(a, keylambda a_tuple: a_tuple[0])
print(b) 輸出結(jié)果為[(1, 3), (2, 1), (3, 2)]
在上述命令中,lambda是一個匿名函數(shù),是固定寫法,不要更改。a_tuple表示列表中的一個元素,即一個元組。a_tuple只是臨時起的一個名字,你可以使用任意的名字。a_tuple[0]表示元組里的第一個元素,同理a_tuple[1]表示第二個元素。因此,該命令的意思是按照列表中元組里的第一個元素進行排序。
使用cmp參數(shù)進行元組排序
除了使用key參數(shù)實現(xiàn)元組排序外,還可以使用cmp參數(shù)。以下是一個示例命令:
a [(1, 3), (2, 1), (3, 2)]
b sorted(a, cmplambda x, y: x[1] - y[1])
print(b) 輸出結(jié)果為[(2, 1), (3, 2), (1, 3)]
上述命令中,我們使用了x和y兩個元組作為臨時變量,你可以任意更改這些變量名。x[1]表示第一個元組的第二個元素,而y[1]表示第二個元組的第二個元素。cmp()函數(shù)用于比較x[1]和y[1]的大小,從而實現(xiàn)排序。
倒序排列
我們還可以使用reverse參數(shù)將列表按照倒序排列。以下是一個示例命令:
a [4, 2, 1, 3]
b sorted(a, reverseTrue)
print(b) 輸出結(jié)果為[4, 3, 2, 1]
如果你現(xiàn)在還不能完全理解這些命令,先記住它們的寫法,并多加練習(xí),你自然會懂得更多。在下一篇文章中,我們將介紹另一種更簡單的排序方法,請查看鏈接: