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

學無先后,達者為師

網站首頁 編程語言 正文

python的sorted函數及使用解析_python

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

一、sort函數

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

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

二、sorted函數

sorted函數就比sort函數要強大許多了,sort只能對列表進行排序,sorted可以對所有可迭代類型進行排序,并且返回新的已排序的列表。語法如下:

sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

一共可接受4個參數,含義分別如下:
1.可迭代類型,例如字典、列表、
2.比較函數
3.可迭代類型中某個屬性,對給定元素的每一項進行排序
4.降序或升序

三、結合使用

與sorted經常結合使用的有:

1.比較函數經常會用到lambda。

lambda表達式,通常是在需要一個函數,但是又不想費神去命名一個函數的場合下使用,也就是指匿名函數。比如對元組組成的列表中某一項進行排序:

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.比較函數經常會用到operator.itemgetter函數

operator模塊提供的itemgetter函數用于獲取對象的哪些維的數據,參數為一些序號。

要注意,operator.itemgetter函數獲取的不是值,而是定義了一個函數,通過該函數作用到對象上才能獲取值。
sorted函數用來排序,sorted(iterable[, cmp[, key[, reverse]]])
其中key的參數為一個函數或者lambda函數。所以itemgetter可以用來當key的參數

 例如根據第二個域和第三個域進行排序
 a = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
 sorted(students, key=operator.itemgetter(1,2))

3.可迭代元素經常會用到items

items是字典中的一個方法,返回由元組組成的列表。

四、對字典的值進行排序

dict={'a':1,'b':2}
ans = sorted(dict.items(), key = lambda x:x[1], reverse = True)

Python中sorted()用法

sorted()函數:返回一個排序后的新序列,不改變原始序列。

我們知道,Python中列表是基本數據類型之一,是寫在方括號之間,用逗號分隔開的元素序列。可以同時存在數字、字符串、元組、字典、集合等數據類型的對象,甚至可以包含列表(即嵌套),例如。[1,2,3] [a,b,c] [123,[abc]]

關于列表的常用函數,例如sorted()函數,具體用法及案例如下:

sorted(iterable[,key][,reverse])返回一個排序后的新序列,不改變原始的序列。

第一個參數interable是可迭代的對象。

第二個參數key用來指定一個帶參數的函數,該函數會在每個元素排序前被調用,如key=abs #按絕對值大小排序。

key指定的函數將作用于list的每一個元素上,并根據key指定的函數返回的結果進行排序。

第三個參數reverse用來指定正向還是反向排序

如反向排序第三個參數reverse=True:

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

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

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

欄目分類
最近更新