網(wǎng)站首頁 編程語言 正文
一、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
相關(guān)推薦
- 2023-02-12 PyCharm軟件無法安裝lxml庫的問題及解決_python
- 2022-08-18 C++詳解如何實(shí)現(xiàn)動(dòng)態(tài)數(shù)組_C 語言
- 2022-03-03 video-time-slider,用于IVR視頻回播的時(shí)間選擇插件
- 2022-09-25 瀏覽網(wǎng)站時(shí)發(fā)生的過程
- 2023-07-03 Python?Thread虛假喚醒概念與防范詳解_python
- 2023-01-03 利用Rust實(shí)現(xiàn)一個(gè)簡單的Ping應(yīng)用_Rust語言
- 2022-01-31 RuntimeError:Given input size:(256x1x1). Calculate
- 2022-08-03 使用Go構(gòu)建一款靜態(tài)分析工具Owl詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支