Python中排序函數(shù)sorted()函數(shù)的使用實例
選擇題
以下python代碼輸出什么?
a = [2,3,1] sorted(a) print(a)
A a
B [3, 2, 1]
C [2, 3, 1]
D [1, 2, 3]
問題解析
1.sorted()函數(shù)可以對所有可迭代的對象進(jìn)行排序操作。題目中,sorted()函數(shù)提供了一個新的有序的輸出結(jié)果,并且不改變原始值的順序。所以使用print()語句輸出列表a,結(jié)果仍是原來a的排序。
2.sorted()函數(shù)是一個內(nèi)置函數(shù),可以直接使用。sorted()語法(應(yīng)用于Python 3.x):
sorted(iterable,key=None, reverse=False)
其中參數(shù)說明:
- iterable:可迭代對象
- key:通過這個參數(shù)可以自定義排序邏輯
- reverse:指定排序規(guī)則,True為降序,F(xiàn)alse為升序(默認(rèn))。
3.sorted()函數(shù)返回重新排序的列表,與sort()函數(shù)的區(qū)別在于sort()函數(shù)是list列表中的函數(shù),而sorted()函數(shù)可以對所有可迭代對象進(jìn)行排序操作。并且用sort()函數(shù)對列表排序時會影響列表本身,而sorted()函數(shù)則不會。
4.需要注意的是,sorted()函數(shù)雖然可以處理所有可迭代的對象,例如集合、元組、數(shù)組,但是輸出結(jié)果仍然是一個列表。所以如果返回的對象需要匹配輸入類型,那么需要將轉(zhuǎn)化為新類型。
答案
正確答案是:C
代碼及運(yùn)行結(jié)果:
附:sorted函數(shù)超詳細(xì)用法
例1. sort()函數(shù)中的兩種情況:按照數(shù)值排序以及按照絕對值大小排序
list1=[3,-4,2,4] print(sorted(list1)) # 輸出[-4, 2, 3, 4] print(sorted(list1,key=lambda x:(abs(x),x),reverse=True)) # 輸出[4, -4, 3, 2] print(list1) # 輸出[3, -4, 2, 4]
注意:sorted(list1)返回了一個新列表,不改變原先列表list1的值
如果需要直接在原先列表上改變,則需額外賦值: list1=sorted(list1)
例2. 二維列表按照第二個元素升序排序(按照動物重量排序,其中1t=1000kg)
原始列表:s=[['北極熊', '0.75t'] , ['企鵝', '35kg'] , ['海豹', '1.35t']]
需要返回的排序后的列表:[['企鵝', '35kg'], ['北極熊', '0.75t'], ['海豹', '1.35t']]
s=[['北極熊', '0.75t'] , ['企鵝', '35kg'] , ['海豹', '1.35t']] # 法一:使用sorted(list,key=...) s1=sorted(s,key=lambda x:float(x[1][:-1]) * 1000 if x[1][-1] == 't' else float(x[1][:-2])) print(s1) # 法二:使用list.sort(key=...) s.sort(key=lambda x:float(x[1][:-1]) * 1000 if x[1][-1] == 't' else float(x[1][:-2])) print(s)
解釋:
x[1]指二維列表中每個一維列表中index=1的元素(第二個元素)
如果x[1][-1]=='t',則重量x[1][:-1]需要*1000,轉(zhuǎn)化為kg;
否則直接取kg前面的數(shù)字x[1][:-2]
總結(jié)
到此這篇關(guān)于Python中排序函數(shù)sorted()函數(shù)使用的文章就介紹到這了,更多相關(guān)Python排序函數(shù)sorted()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)TCP探測目標(biāo)服務(wù)路由軌跡的原理與方法詳解
這篇文章主要介紹了Python實現(xiàn)TCP探測目標(biāo)服務(wù)路由軌跡的原理與方法,結(jié)合實例形式分析了Python TCP探測目標(biāo)服務(wù)路由軌跡的原理、實現(xiàn)方法及相關(guān)操作注意事項,需要的朋友可以參考下2019-09-09在Python中使用Protocol?Buffers的詳細(xì)介紹
本文詳細(xì)介紹了協(xié)議緩沖區(qū)(Protocol Buffers)在Python中的應(yīng)用,包括其定義、序列化和解析過程,協(xié)議緩沖區(qū)是一種靈活且高效的自動化解決方案,本文包括了如何將地址簿應(yīng)用程序的個人詳細(xì)信息寫入文件的示例代碼,并提供了相應(yīng)的下載和安裝指導(dǎo),感興趣的朋友一起看看吧2024-10-10python實現(xiàn)微秒級等待問題(windows)
這篇文章主要介紹了python實現(xiàn)微秒級等待問題(windows),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06解決python3中自定義wsgi函數(shù),make_server函數(shù)報錯的問題
下面小編就為大家分享一篇解決python3中自定義wsgi函數(shù),make_server函數(shù)報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11python3實現(xiàn)網(wǎng)絡(luò)爬蟲之BeautifulSoup使用詳解
這篇文章主要介紹了python3實現(xiàn)網(wǎng)絡(luò)爬蟲之BeautifulSoup使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12Python3實現(xiàn)的簡單工資管理系統(tǒng)示例
這篇文章主要介紹了Python3實現(xiàn)的簡單工資管理系統(tǒng),涉及Python文件讀寫、數(shù)據(jù)遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03python操作MySQL數(shù)據(jù)庫的方法分享
堅持每天學(xué)一點,每天積累一點點,作為自己每天的業(yè)余收獲,這個文章是我在吃飯的期間寫的,利用自己零散的時間學(xué)了一下python操作MYSQL,所以整理一下2012-05-05