python的sorted函數(shù)及使用解析
一、sort函數(shù)
如果對(duì)python中的列表進(jìn)行排序,可以使用List類的成員函數(shù)sort,該函數(shù)會(huì)在原空間上進(jìn)行操作,對(duì)列表本身進(jìn)行修改,不返回副本。語(yǔ)法如下:
L.sort(cmp=None, key=None, reverse=False)
二、sorted函數(shù)
sorted函數(shù)就比sort函數(shù)要強(qiáng)大許多了,sort只能對(duì)列表進(jìn)行排序,sorted可以對(duì)所有可迭代類型進(jìn)行排序,并且返回新的已排序的列表。語(yǔ)法如下:
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
一共可接受4個(gè)參數(shù),含義分別如下:
1.可迭代類型,例如字典、列表、
2.比較函數(shù)
3.可迭代類型中某個(gè)屬性,對(duì)給定元素的每一項(xiàng)進(jìn)行排序
4.降序或升序
三、結(jié)合使用
與sorted經(jīng)常結(jié)合使用的有:
1.比較函數(shù)經(jīng)常會(huì)用到lambda。
lambda表達(dá)式,通常是在需要一個(gè)函數(shù),但是又不想費(fèi)神去命名一個(gè)函數(shù)的場(chǎng)合下使用,也就是指匿名函數(shù)。比如對(duì)元組組成的列表中某一項(xiàng)進(jìn)行排序:
students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10),] sorted(students, key=lambda student : student[2]) # sort by age [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
2.比較函數(shù)經(jīng)常會(huì)用到operator.itemgetter函數(shù)
operator模塊提供的itemgetter函數(shù)用于獲取對(duì)象的哪些維的數(shù)據(jù),參數(shù)為一些序號(hào)。
要注意,operator.itemgetter函數(shù)獲取的不是值,而是定義了一個(gè)函數(shù),通過(guò)該函數(shù)作用到對(duì)象上才能獲取值。
sorted函數(shù)用來(lái)排序,sorted(iterable[, cmp[, key[, reverse]]])
其中key的參數(shù)為一個(gè)函數(shù)或者lambda函數(shù)。所以itemgetter可以用來(lái)當(dāng)key的參數(shù)
例如根據(jù)第二個(gè)域和第三個(gè)域進(jìn)行排序 a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] sorted(students, key=operator.itemgetter(1,2))
3.可迭代元素經(jīng)常會(huì)用到items
items是字典中的一個(gè)方法,返回由元組組成的列表。
四、對(duì)字典的值進(jìn)行排序
dict={'a':1,'b':2} ans = sorted(dict.items(), key = lambda x:x[1], reverse = True)
Python中sorted()用法
sorted()函數(shù):返回一個(gè)排序后的新序列,不改變?cè)夹蛄小?/p>
我們知道,Python中列表是基本數(shù)據(jù)類型之一,是寫在方括號(hào)之間,用逗號(hào)分隔開的元素序列??梢酝瑫r(shí)存在數(shù)字、字符串、元組、字典、集合等數(shù)據(jù)類型的對(duì)象,甚至可以包含列表(即嵌套),例如。[1,2,3] [a,b,c] [123,[abc]]
關(guān)于列表的常用函數(shù),例如sorted()函數(shù),具體用法及案例如下:
sorted(iterable[,key][,reverse])返回一個(gè)排序后的新序列,不改變?cè)嫉男蛄小?/p>
第一個(gè)參數(shù)interable是可迭代的對(duì)象。
第二個(gè)參數(shù)key用來(lái)指定一個(gè)帶參數(shù)的函數(shù),該函數(shù)會(huì)在每個(gè)元素排序前被調(diào)用,如key=abs #按絕對(duì)值大小排序。
key指定的函數(shù)將作用于list的每一個(gè)元素上,并根據(jù)key指定的函數(shù)返回的結(jié)果進(jìn)行排序。
第三個(gè)參數(shù)reverse用來(lái)指定正向還是反向排序
如反向排序第三個(gè)參數(shù)reverse=True:
例如>>>sorted(['bcd','about','diff','create'],key=str.lower,reverse=True) #按小寫反向排序
['diff','create','bcd','about']
到此這篇關(guān)于python的sorted函數(shù)的文章就介紹到這了,更多相關(guān)python sorted函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)微信翻譯機(jī)器人的方法
這篇文章主要介紹了Python實(shí)現(xiàn)微信翻譯機(jī)器人的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08在多種情況/開發(fā)環(huán)境中運(yùn)行python腳本和代碼的技巧分享
Python腳本或程序是包含可執(zhí)行Python代碼的文件,能夠運(yùn)行Python腳本和代碼可能是您作為Python開發(fā)人員所需的最重要的技能,在本教程中,您將學(xué)習(xí)一些運(yùn)行Python腳本和代碼的技術(shù),在每種情況下使用的技術(shù)將取決于您的環(huán)境、平臺(tái)、需求和技能2023-11-11python編程進(jìn)階之異常處理用法實(shí)例分析
這篇文章主要介紹了python編程進(jìn)階之異常處理用法,結(jié)合實(shí)例形式分析了python異常捕獲、處理相關(guān)語(yǔ)句、使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-02-02OpenCV指紋識(shí)別實(shí)現(xiàn)代碼實(shí)例
使用OpenCV進(jìn)行指紋識(shí)別涵蓋特征提取與匹配,通過(guò)SIFT和FLANN實(shí)現(xiàn)匹配點(diǎn)計(jì)算,進(jìn)而識(shí)別指紋ID和姓名,盡管OpenCV具備強(qiáng)大的圖像處理功能,指紋識(shí)別依舊面臨挑戰(zhàn),需要的朋友可以參考下2024-10-10