python的sorted函數(shù)及使用解析
一、sort函數(shù)
如果對python中的列表進行排序,可以使用List類的成員函數(shù)sort,該函數(shù)會在原空間上進行操作,對列表本身進行修改,不返回副本。語法如下:
L.sort(cmp=None, key=None, reverse=False)
二、sorted函數(shù)
sorted函數(shù)就比sort函數(shù)要強大許多了,sort只能對列表進行排序,sorted可以對所有可迭代類型進行排序,并且返回新的已排序的列表。語法如下:
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
一共可接受4個參數(shù),含義分別如下:
1.可迭代類型,例如字典、列表、
2.比較函數(shù)
3.可迭代類型中某個屬性,對給定元素的每一項進行排序
4.降序或升序
三、結合使用
與sorted經(jīng)常結合使用的有:
1.比較函數(shù)經(jīng)常會用到lambda。
lambda表達式,通常是在需要一個函數(shù),但是又不想費神去命名一個函數(shù)的場合下使用,也就是指匿名函數(shù)。比如對元組組成的列表中某一項進行排序:
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)常會用到operator.itemgetter函數(shù)
operator模塊提供的itemgetter函數(shù)用于獲取對象的哪些維的數(shù)據(jù),參數(shù)為一些序號。
要注意,operator.itemgetter函數(shù)獲取的不是值,而是定義了一個函數(shù),通過該函數(shù)作用到對象上才能獲取值。
sorted函數(shù)用來排序,sorted(iterable[, cmp[, key[, reverse]]])
其中key的參數(shù)為一個函數(shù)或者lambda函數(shù)。所以itemgetter可以用來當key的參數(shù)
例如根據(jù)第二個域和第三個域進行排序 a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] sorted(students, key=operator.itemgetter(1,2))
3.可迭代元素經(jīng)常會用到items
items是字典中的一個方法,返回由元組組成的列表。
四、對字典的值進行排序
dict={'a':1,'b':2} ans = sorted(dict.items(), key = lambda x:x[1], reverse = True)
Python中sorted()用法
sorted()函數(shù):返回一個排序后的新序列,不改變原始序列。
我們知道,Python中列表是基本數(shù)據(jù)類型之一,是寫在方括號之間,用逗號分隔開的元素序列。可以同時存在數(shù)字、字符串、元組、字典、集合等數(shù)據(jù)類型的對象,甚至可以包含列表(即嵌套),例如。[1,2,3] [a,b,c] [123,[abc]]
關于列表的常用函數(shù),例如sorted()函數(shù),具體用法及案例如下:
sorted(iterable[,key][,reverse])返回一個排序后的新序列,不改變原始的序列。
第一個參數(shù)interable是可迭代的對象。
第二個參數(shù)key用來指定一個帶參數(shù)的函數(shù),該函數(shù)會在每個元素排序前被調(diào)用,如key=abs #按絕對值大小排序。
key指定的函數(shù)將作用于list的每一個元素上,并根據(jù)key指定的函數(shù)返回的結果進行排序。
第三個參數(shù)reverse用來指定正向還是反向排序
如反向排序第三個參數(shù)reverse=True:
例如>>>sorted(['bcd','about','diff','create'],key=str.lower,reverse=True) #按小寫反向排序
['diff','create','bcd','about']
到此這篇關于python的sorted函數(shù)的文章就介紹到這了,更多相關python sorted函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在多種情況/開發(fā)環(huán)境中運行python腳本和代碼的技巧分享
Python腳本或程序是包含可執(zhí)行Python代碼的文件,能夠運行Python腳本和代碼可能是您作為Python開發(fā)人員所需的最重要的技能,在本教程中,您將學習一些運行Python腳本和代碼的技術,在每種情況下使用的技術將取決于您的環(huán)境、平臺、需求和技能2023-11-11