溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中怎么將List按照長度排序

發(fā)布時間:2021-06-17 16:13:55 來源:億速云 閱讀:473 作者:Leah 欄目:開發(fā)技術(shù)

Python中怎么將List按照長度排序,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

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ù)進行作為關(guān)鍵字,有默認值,迭代集合中的一項;
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'...

當(dāng)我把該文件夾中的所有記錄文件名讀到一個列表中,這些字符串的排列方式為:

如何讓這些字符串按照數(shù)字排列?

1、首先通過正則表達式,提取出字符串中的數(shù)字

2、排序,選擇built-in函數(shù)sorted進行排序

sorted(iterable, cmp=None, key=None, reverse=False)

iterable:是可迭代類型;
cmp:用于比較的函數(shù),比較什么由key決定;
key:用列表元素的某個屬性或函數(shù)進行作為關(guān)鍵字,有默認值,迭代集合中的一項;
reverse:排序規(guī)則. reverse = True  降序 或者 reverse = False 升序,有默認值。
返回值:是一個經(jīng)過排序的可迭代類型,與iterable一樣。

所以說排序方式按照數(shù)字拍的話,key就要對應(yīng)里面的數(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按照長度排序的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI