本文介紹的是關(guān)于Python列表項(xiàng)排序的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)看看詳細(xì)的介紹:
典型代碼1:
data_list = [6, 9, 1, 3, 0, 10, 100, -100] data_list.sort() print(data_list)
輸出1:
[-100, 0, 1, 3, 6, 9, 10, 100]
典型代碼2:
data_list = [6, 9, 1, 3, 0, 10, 100, -100] data_list_copy = sorted(data_list) print(data_list) print(data_list_copy)
輸出2:
[6, 9, 1, 3, 0, 10, 100, -100] [-100, 0, 1, 3, 6, 9, 10, 100]
應(yīng)用場(chǎng)景
需要對(duì)列表中的項(xiàng)進(jìn)行排序時(shí)使用。其中典型代碼1是使用的列表自身的一個(gè)排序方法sort,這個(gè)方法自動(dòng)按照升序排序,并且是原地排序,被排序的列表本身會(huì)被修改;典型代碼2是調(diào)用的內(nèi)置函數(shù)sort,會(huì)產(chǎn)生一個(gè)新的經(jīng)過(guò)排序后的列表對(duì)象,原列表不受影響。這兩種方式接受的參數(shù)幾乎是一樣的,他們都接受一個(gè)key參數(shù),這個(gè)參數(shù)用來(lái)指定用對(duì)象的哪一部分為排序的依據(jù):
data_list = [(0, 100), (77, 34), (55, 97)] data_list.sort(key=lambda x: x[1]) # 我們想要基于列表項(xiàng)的第二個(gè)數(shù)進(jìn)行排序 print(data_list) >>> [(77, 34), (55, 97), (0, 100)]
另外一個(gè)經(jīng)常使用的參數(shù)是reverse,用來(lái)指定是否按照倒序排序,默認(rèn)為False:
data_list = [(0, 100), (77, 34), (55, 97)] data_list.sort(key=lambda x: x[1], reverse=True) # 我們想要基于列表項(xiàng)的第二個(gè)數(shù)進(jìn)行排序,并倒序 print(data_list) >>> [(0, 100), (55, 97), (77, 34)]
帶來(lái)的好處
1. 內(nèi)置的排序方法,執(zhí)行效率高,表達(dá)能力強(qiáng),使代碼更加緊湊,已讀
2. 靈活的參數(shù),用于指定排序的基準(zhǔn),比在類似于Java的語(yǔ)言中需要寫一個(gè)comparator要方便很多
其它說(shuō)明
1. sorted內(nèi)置函數(shù)比列表的sort方法要適用范圍更廣泛,它可以對(duì)除列表之外的可迭代數(shù)據(jù)結(jié)構(gòu)進(jìn)行排序;
2. list內(nèi)置的sort方法,屬于原地排序,理論上能夠節(jié)省內(nèi)存的消耗;
總結(jié)
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選