網站首頁 編程語言 正文
Python中sorted()用法
sorted() 作為?Python?內置函數之一,其功能是對序列(列表、元組、字典、集合、還包括字符串)進行排序。
sorted() 函數的基本語法格式如下:
list = sorted(iterable, key=None, reverse=False)??
其中,iterable 表示指定的序列,key 參數可以自定義排序規則;reverse 參數指定以升序(False,默認)還是降序(True)進行排序。sorted() 函數會返回一個排好序的列表。
注意,key 參數和 reverse 參數是可選參數,即可以使用,也可以忽略。
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']
補充:Python基礎之sorted()函數用法
本篇是關于sorted()函數的一些基本用法,如有不足缺陷歡迎補充指正。
1、簡單的排序
sorted函數可以對可迭代類型的容器內的數據進行排序
lst1 = (5,4,3,2,1)
lst2 = ('F','D','Y','e','a','v')#字符串類型的排序按照ASCII的大小進行比較
L1 = sorted(lst1)
L2 = sorted(lst2)
print(L1)
print(L2)
>>>[1, 2, 3, 4, 5]
['D', 'F', 'Y', 'a', 'e', 'v']
2、進階使用
sorted(L,key=···)
其中key用來接收一個自定義的排序規則
lst1 = (5,4,3,-2,1)
lst2 = ('F','D','Y','e','a','v')#字符串類型的排序按照ASCII的大小進行比較
L1 = sorted(lst1)
L2 = sorted(lst2)
L3 = sorted(lst1,key=abs)
L4 = sorted(lst2,key=str.lower)
print(L1)
print(L2)
print(L3)
print(L4)
>>>[-2, 1, 3, 4, 5]
['D', 'F', 'Y', 'a', 'e', 'v']
[1, -2, 3, 4, 5]
['a', 'D', 'e', 'F', 'v', 'Y']
3、選擇升序還是降序排列方式
其中sorted函數是默認升序排序,當需要降序排序時,需要使用reverse = Ture
lst1 = (5,4,3,-2,1)
lst2 = ('F','D','Y','e','a','v')#字符串類型的排序按照ASCII的大小進行比較
L1 = sorted(lst1)
L2 = sorted(lst2)
L3 = sorted(lst1,key=abs)
L4 = sorted(lst2,key=str.lower)
L5 = sorted(lst1,reverse=True)
print(L1)
print(L2)
print(L3)
print(L4)
print(L5)
>>>[-2, 1, 3, 4, 5]
['D', 'F', 'Y', 'a', 'e', 'v']
[1, -2, 3, 4, 5]
['a', 'D', 'e', 'F', 'v', 'Y']
[5, 4, 3, 1, -2]
4、多級排序
operator模塊提供的itemgetter函數用于獲取對象的哪些維的數據
from operator import itemgetter
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
#按名字排序
L2=sorted(L,key=itemgetter(0))
#按成績排序
L3=sorted(L,key=itemgetter(1))
print("按名字排序: ")
print(L2)
print("按成績排序: ")
print(L3)
>>>按名字排序:
[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]
按成績排序:
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
這里是借鑒了下面這位大佬的
原文連接https://blog.csdn.net/weixin_40759602/article/details/108484971
最后也隨便提一嘴,就是有很多的兄弟們在輸出列表時不想輸出中括號,引號和逗號。可以在輸出時在變量前加一個’*'即可
lst1 = (5,4,3,-2,1)
lst2 = ('F','D','Y','e','a','v')#字符串類型的排序按照ASCII的大小進行比較
L1 = sorted(lst1)
L2 = sorted(lst2)
L3 = sorted(lst1,key=abs)
L4 = sorted(lst2,key=str.lower)
L5 = sorted(lst1,reverse=True)
print(*L1)
print(*L2)
print(*L3)
print(*L4)
print(*L5)
>>>-2 1 3 4 5
D F Y a e v
1 -2 3 4 5
a D e F v Y
5 4 3 1 -2
這里還用很多其他的方法可以參考這位大佬的文章:
https://blog.csdn.net/XreqcxoKiss/article/details/108637403
原文鏈接:https://blog.csdn.net/weixin_64999943/article/details/122909583
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-11-03 Python入門教程之三元運算符的使用詳解_python
- 2022-11-24 nginx平滑升級及nginx配置文件詳解_nginx
- 2023-01-03 go?doudou開發gRPC服務快速上手實現詳解_Golang
- 2022-08-25 Redis的4種緩存模式分享_Redis
- 2023-03-13 Python實現柵欄密碼的加密解密方法詳解_python
- 2022-03-19 Linux系統下安裝Redis數據庫過程_Redis
- 2022-06-14 深入解析docker三種網絡模式_docker
- 2022-11-18 React中用@符號編寫文件路徑實現方法介紹_React
- 欄目分類
-
- 最近更新
-
- 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同步修改后的遠程分支