您好,登錄后才能下訂單哦!
這篇文章主要介紹“Python中的sorted()怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python中的sorted()怎么使用”文章能幫助大家解決問題。
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()函數用法
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
關于“Python中的sorted()怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。