Python教程:在python中對列表進行排序詳解
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《在python中對列表進行排序》。本知識點主要內(nèi)容有:使用列表對象的sort()方法進行排序、使用內(nèi)置的sorted()函數(shù)進行排序、使用reverse()方法進行反向排序。
永久美國免備案虛擬主機1元1天,15元1月,100元1年,1000元永久
站長在線旗下答案網(wǎng)站,全站所有題目,免費查看答案和答案解析
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識,本文學(xué)習(xí)的是《在Python中對列表進行排序詳解》。本知識點主要內(nèi)容有:使用列表對象的sort()方法進行排序、使用內(nèi)置的sorted()函數(shù)進行排序、使用reverse()方法進行反向排序。
在Python實際開發(fā)中,會經(jīng)常需要用到對列表進行排序。下面站長在線對列表的排序講解幾種常用的方法:
1、使用列表對象的sort()方法進行排序。
列表對象提供了sort()方法用于對原列表中的元素進行排序。排序以后,原列表中的元素順序?qū)l(fā)生改變。列表對象的sort()方法的語法格式如下:
listname.sort(key=None,reverse=False)
相關(guān)的參數(shù)說明如下:
listname:表示要進行排序的列表。
key:表示指定一個從每個列表元素中提取一個比較鍵。(列如,設(shè)置“key=str.lower”表示在排序時不區(qū)分字母的大小寫)。
reverse:可選參數(shù),如果將其值指定為True,則表示降序排序;如果將其指定為False,則表示升序排列。默認為升序排列。
列如,某中學(xué)初三1班的10名男學(xué)生的數(shù)學(xué)成績,然后應(yīng)用sort()方法對其進行排序,代碼如下:
s = [93,95,86,98,99,99,89,100,100,97]
print("原列表:",s)
s.sort()
print("升序:",s)
s.sort(reverse=True)
print("降序:",s)
執(zhí)行結(jié)果如下:
原列表: [93, 95, 86, 98, 99, 99, 89, 100, 100, 97]
升序: [86, 89, 93, 95, 97, 98, 99, 99, 100, 100]
降序: [100, 100, 99, 99, 98, 97, 95, 93, 89, 86]
>>>
使用sort()方法除了可以對數(shù)值進行排序,還可以多字符串進行排序。對字符串進行排序默認區(qū)分大小寫,如果想不區(qū)分大小寫,則需要指定其key參數(shù)。
列如,定義保存一個大小寫不同的英文字符串列表,然后應(yīng)用sort()方法對其進行排序,代碼如下:
s = ['hello','polly','Lucy','Lily','Han Meimei']
s.sort()
print("區(qū)分字母大小寫:",s)
s.sort(key=str.lower)
print("不區(qū)分字母大小寫:",s)
運行結(jié)果如下:
區(qū)分字母大小寫: ['Han Meimei', 'Lily', 'Lucy', 'hello', 'polly']
不區(qū)分字母大小寫: ['Han Meimei', 'hello', 'Lily', 'Lucy', 'polly']
>>>
說明:sort()方法對列表排序時,最中文的支持不好,排序的結(jié)果與我們常用的按拼音排序或者筆畫排序都不一致。要想實現(xiàn)對中文內(nèi)容的排序,需要重新編寫相應(yīng)的方法,不能直接使用sort()方法。如:
s = ['張三','李四','王五','李明','楊軍']
s.sort()
print(s)
運行結(jié)果:
['張三', '李四', '李明', '楊軍', '王五']
>>>
這個結(jié)果,我們根本看不懂,所以不能直接使用sort()方法對中文列表排序。
2、使用內(nèi)置的sorted()函數(shù)進行排序。
在Python中,提供了一個內(nèi)置的sorted()函數(shù),用于對列表進行排序。使用該函數(shù)進行排序后,原列表的元素順序不變。sorted()函數(shù)的語法格式如下:
sorted(iterable,key=None,reverse=False)
相關(guān)的參數(shù)說明如下:
iterable:表示要進行排序的列表。
key:表示指定從每個列表元素中提取一個比較鍵。(列如,設(shè)置“key=str.lower”表示在排序時不區(qū)分字母的大小寫)。
reverse:可選參數(shù),如果將其值指定為True,則表示降序排序;如果將其指定為False,則表示升序排列。默認為升序排列。
列如,某中學(xué)初三1班的10名男學(xué)生的數(shù)學(xué)成績,然后應(yīng)用sorted()函數(shù)對其進行排序,代碼如下:
s = [93,95,86,98,99,99,89,100,100,97]
s1 = sorted(s)
print("升序:",s1)
s2 = sorted(s,reverse=True)
print("降序:",s2)
print("原列表:",s)
運行結(jié)果如下:
升序: [86, 89, 93, 95, 97, 98, 99, 99, 100, 100]
降序: [100, 100, 99, 99, 98, 97, 95, 93, 89, 86]
原列表: [93, 95, 86, 98, 99, 99, 89, 100, 100, 97]
>>>
說明:
列表對象的sort()方法和sorted()函數(shù)的作用基本相同。不同的地方有以下兩點:
a、sort()方法只能處理列表類型數(shù)據(jù)的排序;sorted()函數(shù)則可以處理多種類型數(shù)據(jù)的排序。
b、sort()方法會修改原來的列表的元素的排序;sorted()函數(shù)不會修改原來的數(shù)據(jù),會建立一個原列表的副本,只是返回一個排序后的列表。
3、使用reverse()方法進行反向排序。
我們在使用sort()方法和sorted()函數(shù)的時候,在處理升序和降序的時候用到了reverse。
reverse是反轉(zhuǎn),相反,背面,反面的意思。其實還有一種特殊的排序就是反向排序。相關(guān)代碼如下:
s = [93,95,86,98,99,99,89,100,100,97]
python = ["優(yōu)雅","明確","簡單"]
s.reverse()
python.reverse()
print(s)
print(python)
運行結(jié)果如下:
[97, 100, 100, 89, 99, 99, 98, 86, 95, 93]
['簡單', '明確', '優(yōu)雅']
>>>
在實際的Python開發(fā)中,使用reverse()方法進行反向排序,很多的教程中,沒有提及了。因為使用的比較少。
到此為止,本文學(xué)習(xí)的《在python中對列表進行排序》中的:使用列表對象的sort()方法進行排序、使用內(nèi)置的sorted()函數(shù)進行排序、使用reverse()方法進行反向排序。就全部講解完畢了,還有不懂的,可以留言給我哦!
相關(guān)閱讀:
文末福利:
1、關(guān)注站長在線官方公眾號【站長在線】微信號:olzzcom ,文末也有公眾號二維碼,關(guān)注公眾號以后回復(fù)python,本站精心整理的Python書籍、軟件、工具都實時更新哦!本站所安裝的python3.10、 IDLE中文版 、PyCharm、Visual Studio Code、Sublime Text4等都在里面哦!
2、站長在線官方微信交流群已經(jīng)開通了,微信掃碼進入,一起交流,一起進步!
本文地址:http://003188.cn/pythonliebiaopaixu.html
阿里云虛擬主機1G空間,120元一年
香港、美國虛擬主機100元一年,1000元永久
騰訊云雙十一0.4折起,2核8G5M三年僅700元,2核4G8M三年僅198元
猜你喜歡