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