網站首頁 編程語言 正文
一、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
相關推薦
- 2022-03-30 py3nvml實現GPU相關信息讀取的案例分析_python
- 2022-04-23 Android自定義View實現數字雨效果的全過程_Android
- 2022-06-14 Golang使用ini庫讀取配置詳情_Golang
- 2022-05-02 一起來學習C++中類的this指針以使用_C 語言
- 2022-09-15 C語言實現學生成績管理系統課程設計_C 語言
- 2022-06-17 C#中IEnumerable接口介紹并實現自定義集合_C#教程
- 2023-05-08 C語言中關于樹和二叉樹的相關概念_C 語言
- 2022-12-25 go?slice不同初始化方式性能及數組比較詳解_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支