日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁 編程語言 正文

python的sorted函數(shù)及使用解析_python

作者:問就是啥也不是 ? 更新時(shí)間: 2022-12-19 編程語言

一、sort函數(shù)

如果對(duì)python中的列表進(jìn)行排序,可以使用List類的成員函數(shù)sort,該函數(shù)會(huì)在原空間上進(jìn)行操作,對(duì)列表本身進(jìn)行修改,不返回副本。語法如下:

L.sort(cmp=None, key=None, reverse=False)

二、sorted函數(shù)

sorted函數(shù)就比sort函數(shù)要強(qiáng)大許多了,sort只能對(duì)列表進(jìn)行排序,sorted可以對(duì)所有可迭代類型進(jìn)行排序,并且返回新的已排序的列表。語法如下:

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ù)的場合下使用,也就是指匿名函數(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ù),通過該函數(shù)作用到對(duì)象上才能獲取值。
sorted函數(shù)用來排序,sorted(iterable[, cmp[, key[, reverse]]])
其中key的參數(shù)為一個(gè)函數(shù)或者lambda函數(shù)。所以itemgetter可以用來當(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用來指定一個(gè)帶參數(shù)的函數(shù),該函數(shù)會(huì)在每個(gè)元素排序前被調(diào)用,如key=abs #按絕對(duì)值大小排序。

key指定的函數(shù)將作用于list的每一個(gè)元素上,并根據(jù)key指定的函數(shù)返回的結(jié)果進(jìn)行排序。

第三個(gè)參數(shù)reverse用來指定正向還是反向排序

如反向排序第三個(gè)參數(shù)reverse=True:

例如>>>sorted(['bcd','about','diff','create'],key=str.lower,reverse=True) ? ? ? ? ? ? ? ? ? ? ? ? ? ? #按小寫反向排序

['diff','create','bcd','about']

原文鏈接:https://blog.csdn.net/bcfdsagbfcisbg/article/details/82801835

欄目分類
最近更新