Python中怎么將List按照長度排序,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
站在用戶的角度思考問題,與客戶深入溝通,找到南岳網(wǎng)站設計與南岳網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、成都網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬主機、企業(yè)郵箱。業(yè)務覆蓋南岳地區(qū)。myList = ['青海省','內(nèi)蒙古自治區(qū)','西藏自治區(qū)','新疆維吾爾自治區(qū)','廣西壯族自治區(qū)']
1、首先得到每個字符串長度
2、排序,選擇sorted或者 list.sort()進行排序
內(nèi)置sorted返回一個新的列表,而list.sort是對列表進行操作
sorted(iterable, cmp=None, key=None, reverse=False)
iterable:是可迭代類型;
cmp:用于比較的函數(shù),比較什么由key決定;
key:用列表元素的某個屬性或函數(shù)進行作為關鍵字,有默認值,迭代集合中的一項;
reverse:排序規(guī)則. reverse = True 降序 或者 reverse = False 升序,有默認值。
返回值:是一個經(jīng)過排序的可迭代類型,與iterable一樣。
myList = ['青海省','內(nèi)蒙古自治區(qū)','西藏自治區(qū)','新疆維吾爾自治區(qū)','廣西壯族自治區(qū)'] myList1 = sorted(myList,key = lambda i:len(i),reverse=True) print(myList1) myList = ['青海省','內(nèi)蒙古自治區(qū)','西藏自治區(qū)','新疆維吾爾自治區(qū)','廣西壯族自治區(qū)'] myList.sort(key = lambda i:len(i),reverse=True) print(myList)
結(jié)果如下:
['新疆維吾爾自治區(qū)', '廣西壯族自治區(qū)', '內(nèi)蒙古自治區(qū)', '西藏自治區(qū)', '青海省']
PS:下面看下列表中字符串按照某種規(guī)則排序的方法(python)
有時候處理數(shù)據(jù)時,想要按照字符串中的數(shù)字的大小進行排序。
譬如,存在一組記錄文件,分別為‘1.dat','2.dat'...
當我把該文件夾中的所有記錄文件名讀到一個列表中,這些字符串的排列方式為:
如何讓這些字符串按照數(shù)字排列?
1、首先通過正則表達式,提取出字符串中的數(shù)字
2、排序,選擇built-in函數(shù)sorted進行排序
sorted(iterable, cmp=None, key=None, reverse=False)
iterable:是可迭代類型;
cmp:用于比較的函數(shù),比較什么由key決定;
key:用列表元素的某個屬性或函數(shù)進行作為關鍵字,有默認值,迭代集合中的一項;
reverse:排序規(guī)則. reverse = True 降序 或者 reverse = False 升序,有默認值。
返回值:是一個經(jīng)過排序的可迭代類型,與iterable一樣。
所以說排序方式按照數(shù)字拍的話,key就要對應里面的數(shù)字。
所以,這個問題只需一句話解決:
s = ['1.dat','10.dat','5.dat'] new = sorted(s,key = lambda i:int(re.match(r'(\d+)',i).group())) print new
得到的結(jié)果即為
對于該操作,同樣可以使用list.sort(),python2.4之后,list.sort和sorted都添加了一個key參數(shù)用來指定一個函數(shù)
不同的地方是:內(nèi)置sorted返回一個新的列表,而list.sort是對列表進行操作
s = ['1.dat','10.dat','5.dat'] s.sort(key = lambda i:int(re.match(r'(\d+)',i).group())) print s
看完上述內(nèi)容,你們掌握Python中怎么將List按照長度排序的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道,感謝各位的閱讀!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。