Python學(xué)習(xí)小技巧之列表項的排序
本文介紹的是關(guān)于Python列表項排序的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面來看看詳細(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)用場景
需要對列表中的項進行排序時使用。其中典型代碼1是使用的列表自身的一個排序方法sort,這個方法自動按照升序排序,并且是原地排序,被排序的列表本身會被修改;典型代碼2是調(diào)用的內(nèi)置函數(shù)sort,會產(chǎn)生一個新的經(jīng)過排序后的列表對象,原列表不受影響。這兩種方式接受的參數(shù)幾乎是一樣的,他們都接受一個key參數(shù),這個參數(shù)用來指定用對象的哪一部分為排序的依據(jù):
data_list = [(0, 100), (77, 34), (55, 97)] data_list.sort(key=lambda x: x[1]) # 我們想要基于列表項的第二個數(shù)進行排序 print(data_list) >>> [(77, 34), (55, 97), (0, 100)]
另外一個經(jīng)常使用的參數(shù)是reverse,用來指定是否按照倒序排序,默認(rèn)為False:
data_list = [(0, 100), (77, 34), (55, 97)] data_list.sort(key=lambda x: x[1], reverse=True) # 我們想要基于列表項的第二個數(shù)進行排序,并倒序 print(data_list) >>> [(0, 100), (55, 97), (77, 34)]
帶來的好處
1. 內(nèi)置的排序方法,執(zhí)行效率高,表達能力強,使代碼更加緊湊,已讀
2. 靈活的參數(shù),用于指定排序的基準(zhǔn),比在類似于Java的語言中需要寫一個comparator要方便很多
其它說明
1. sorted內(nèi)置函數(shù)比列表的sort方法要適用范圍更廣泛,它可以對除列表之外的可迭代數(shù)據(jù)結(jié)構(gòu)進行排序;
2. list內(nèi)置的sort方法,屬于原地排序,理論上能夠節(jié)省內(nèi)存的消耗;
總結(jié)
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
python3發(fā)送郵件需要經(jīng)過代理服務(wù)器的示例代碼
今天小編就為大家分享一篇python3發(fā)送郵件需要經(jīng)過代理服務(wù)器的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
使用sublime text3搭建Python編輯環(huán)境的實現(xiàn)
這篇文章主要介紹了使用sublime text3搭建Python編輯環(huán)境的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實現(xiàn)
這篇文章主要介紹了Python3自動生成MySQL數(shù)據(jù)字典的markdown文本的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
python中實現(xiàn)指定時間調(diào)用函數(shù)示例代碼
函數(shù)function是python編程核心內(nèi)容之一,也是比較重要的一塊。下面這篇文章主要給大家介紹了關(guān)于python中實現(xiàn)指定時間調(diào)用函數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09
pytorch中的torch.nn.Conv2d()函數(shù)圖文詳解
這篇文章主要給大家介紹了關(guān)于pytorch中torch.nn.Conv2d()函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-02-02
python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析
這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
在VS2017中用C#調(diào)用python腳本的實現(xiàn)
這篇文章主要介紹了在VS2017中用C#調(diào)用python腳本的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python腳本按照當(dāng)前日期創(chuàng)建多級目錄
今天小編就為大家分享一篇關(guān)于Python腳本按照當(dāng)前日期創(chuàng)建多級目錄,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03

