Python list sort方法的具體使用
描述
list.sort()方法是Python的列表方法,用于對原列表進行排序。list.sort()方法沒有任何返回值。
語法
list.sort(key=function, reverse=boolean)
名稱 | 說明 | 備注 |
list | 列表名稱 | |
key=function | 列表元素權(quán)值參數(shù) | 可省略的參數(shù)。省略時列表排序不考慮元素的權(quán)值 |
reverse=boolean | 排序規(guī)則參數(shù) | 可省略的參數(shù)。省略時reverse默認(rèn)值False |
返回值:函數(shù)在原有列表上排序并返回排序后的列表
使用示例
1. 所有參數(shù)都省略
當(dāng)sort函數(shù)的所有參數(shù)都省略的情況下,對原列表進行升序排序:
1. 如果原列表是數(shù)字,則按照數(shù)字的大小排序;
2. 如果原列表是字符串,則會按照字母表順序排列.
>>> _list_a = [1, 34, 21, 4] >>> _list_a.sort() #對元素是數(shù)字的列表進行排序 >>> _list_a [1, 4, 21, 34] >>> _list_b = ['Huawei', 'Chinasoft', 'CASC', 'Alibaba', 'SoftStone', 'Tencent'] >>> _list_b.sort() #對元素是字符串的列表進行排序 >>> _list_b ['Alibaba', 'CASC', 'Chinasoft', 'Huawei', 'SoftStone', 'Tencent']
2. 指定key參數(shù)
??? key參數(shù)指的是為列表的元素一一標(biāo)記權(quán)值,并按照元素所對應(yīng)的權(quán)值來排序元素。key=函數(shù)名,該函數(shù)的返回值作為元素的權(quán)值大小。
例如,使用字符串長度作為元素的權(quán)值,用該權(quán)值排序元素是字符串的列表:
下面的例子中,分別不指定權(quán)值和指定權(quán)值來排序兩個一模一樣的列表。
>>> _list_c = ['Beijing', 'Xi\'an', 'Taiyuan', 'Taipei', 'Hongkang'] >>> _list_d = ['Beijing', 'Xi\'an', 'Taiyuan', 'Taipei', 'Hongkang'] >>> _list_c.sort() #不指定權(quán)值 >>> _list_d.sort(key=len) #指定權(quán)值 >>> _list_c ['Beijing', 'Hongkang', 'Taipei', 'Taiyuan', "Xi'an"] >>> _list_d ["Xi'an", 'Taipei', 'Beijing', 'Taiyuan', 'Hongkang'] #按照元素的長度作為權(quán)值的排序結(jié)果
很明顯,_list_d按照元素長度排序,沒有按照元素的字母表順序排序。
3. 指定reverse參數(shù)
??? reverse參數(shù)指的是列表排序是升序還是降序排序。當(dāng)reverse參數(shù)省略或reverse=False時,列表升序排序。當(dāng)reverse=True時,列表降序排序:
>>> _list_a = [13, 45, 23, 66] >>> _list_b = [13, 45, 23, 66] >>> _list_a.sort() #默認(rèn)升序排序 >>> _list_b.sort(reverse=True) #降序排序 >>> _list_a [13, 23, 45, 66] >>> _list_b [66, 45, 23, 13]
?提示:當(dāng)key參數(shù)和reverse參數(shù)同時指定時,sort函數(shù)按照元素的權(quán)值進行升序(reverse=False)或降序(reverse=True)進行排序。
注意事項
1. sort函數(shù)會改變原列表順序
使用sort函數(shù)時要注意的是,sort函數(shù)在調(diào)用后會改變列表本身的順序,而不是復(fù)制列表后排序,并返回復(fù)制后的列表。
>>> _list_a = [1, 34, 21, 4] >>> _list_a.sort() >>> _list_a [1, 4, 21, 34]
從上面的代碼可以看出,_list_a的列表本身順序發(fā)生了變化。
2. 列表元素類型不一致
當(dāng)列表中的所有元素都是同一種類型時,sort()函數(shù)會正常工作。有些時候甚至多種類型也可----例如整型和浮點型----只要它們能夠自動地互相轉(zhuǎn)換:
>>> list_a = [23, 21.2, 22, -67.6] >>> list_a.sort() >>> list_a [-67.6, 21.2, 22, 23]
但是當(dāng)元素之間的類型不能夠互相轉(zhuǎn)換的時候,Python就會報錯,例如整數(shù)和字符串類型:
>>> a_list = [1, 3, '5', 2] >>> a_list.sort() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '<' not supported between instances of 'str' and 'int'
3. Python早些版本
在Python2中,sort函數(shù)還有一個cmp參數(shù)。
cmp -- 可選參數(shù), 如果指定了該參數(shù)會使用該參數(shù)的方法進行排序。
到此這篇關(guān)于Python list sort方法的具體使用的文章就介紹到這了,更多相關(guān)Python list sort內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python爬蟲構(gòu)建代理ip池抓取數(shù)據(jù)庫的示例代碼
這篇文章主要介紹了python爬蟲構(gòu)建代理ip池抓取數(shù)據(jù)庫的示例代碼,幫助大家更好的使用爬蟲,感興趣的朋友可以了解下2020-09-09Python中OpenCV?Tutorials?20??高動態(tài)范圍成像的實現(xiàn)步驟
這篇文章主要介紹了OpenCV?Tutorials?20?-?高動態(tài)范圍成像,本文還給大家展示了一種稱為曝光融合的替代方法,它可以產(chǎn)生低動態(tài)范圍的圖像,需要的朋友可以參考下2022-06-06Python實現(xiàn)將一個大文件按段落分隔為多個小文件的簡單操作方法
這篇文章主要介紹了Python實現(xiàn)將一個大文件按段落分隔為多個小文件的簡單操作方法,涉及Python針對文件的讀取、遍歷、轉(zhuǎn)換、寫入等相關(guān)操作技巧,需要的朋友可以參考下2017-04-04Python數(shù)據(jù)的標(biāo)準(zhǔn)輸出與格式化輸出
這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)的標(biāo)準(zhǔn)輸出與格式化輸出的相關(guān)資料,和大多數(shù)語言一樣,Python也是用print()函數(shù)來進行輸出,需要的朋友可以參考下2023-08-08