Python中的sorted函數(shù)使用解析
sorted()函數(shù)
sorted()函數(shù)可以對可迭代對象進行排序,并且可以人為指定排序的依據(jù)以及方式。
先看下sorted() 幫助文檔:
>>>help(sorted)
sorted(iterable, /, *, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
可以看出sorted()函數(shù)一共有三個參數(shù):可迭代對象,即需要排序的對象,以及兩個可選參數(shù)key、reverse。 其中,key是排序的依據(jù);reverse是指升序還是降序,默認(rèn)升序列。 看下具體例子,將一個字典內(nèi)容按照value從大到小排列:
exam_res = { 'Mike':75, 'Judy':88, 'Cris':57 } print(sorted(exam_res.items(),key=lambda i:i[1]))
輸出:
[('Judy', 88), ('Mike', 75), ('Cris', 57)]
這里可能有人有疑惑,為什么迭代對象是exam_res.items(),而不是字典本身。這里就要注意了,如果字典作為一個可迭代對象,本質(zhì)上是對字典的key進行迭代;而exam_res.items()則是對字典中每一個key以及value包成的tuple進行迭代??梢詼y試一下:
for i in exam_res: print(i) for i in exam_res.items(): print(i)
輸出:
Mike
Judy
Cris
('Mike', 75)
('Judy', 88)
('Cris', 57)
所以,如果需要按照value進行排序,可迭代對象中必須含有value,因此需要使用exam_res.items()。
還有一點需要注意,給key傳入的是一個函數(shù),該函數(shù)就是排序的依據(jù),函數(shù)可以自定義,也可以用匿名函數(shù),函數(shù)的入?yún)⑹敲恳粋€迭代的對象,對于上面的例子而言,第一次迭代時,匿名函數(shù)的入?yún) = ('Mike', 75),因此i[1]就代表取value。
到此這篇關(guān)于Python中的sorted函數(shù)使用解析的文章就介紹到這了,更多相關(guān)Python中的sorted函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)的解析crontab配置文件代碼
這篇文章主要介紹了python實現(xiàn)的解析crontab配置文件代碼,也可以說是python版的crontab,代碼中包含大量注釋,需要的朋友可以參考下2014-06-06python抓取網(wǎng)頁時字符集轉(zhuǎn)換問題處理方案分享
python學(xué)習(xí)過程中發(fā)現(xiàn)英文不好學(xué)起來挺困難的,其中小弟就遇到一個十分蛋疼的問題,百度了半天就沒找到解決辦法~囧~摸索了半天自己解決了,記錄下來與君共勉。2014-06-06python爬蟲框架Scrapy基本應(yīng)用學(xué)習(xí)教程
這篇文章主要為大家介紹了python爬蟲框架Scrapy的基本應(yīng)用學(xué)習(xí)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-11-11Django高級編程之自定義Field實現(xiàn)多語言
這篇文章主要介紹了Django高級編程之自定義Field實現(xiàn)多語言,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07