Python中的sorted函數(shù)使用解析
sorted()函數(shù)
sorted()函數(shù)可以對可迭代對象進(jìn)行排序,并且可以人為指定排序的依據(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ù)一共有三個(gè)參數(shù):可迭代對象,即需要排序的對象,以及兩個(gè)可選參數(shù)key、reverse。 其中,key是排序的依據(jù);reverse是指升序還是降序,默認(rèn)升序列。 看下具體例子,將一個(gè)字典內(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(),而不是字典本身。這里就要注意了,如果字典作為一個(gè)可迭代對象,本質(zhì)上是對字典的key進(jìn)行迭代;而exam_res.items()則是對字典中每一個(gè)key以及value包成的tuple進(jìn)行迭代??梢詼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進(jìn)行排序,可迭代對象中必須含有value,因此需要使用exam_res.items()。
還有一點(diǎn)需要注意,給key傳入的是一個(gè)函數(shù),該函數(shù)就是排序的依據(jù),函數(shù)可以自定義,也可以用匿名函數(shù),函數(shù)的入?yún)⑹敲恳粋€(gè)迭代的對象,對于上面的例子而言,第一次迭代時(shí),匿名函數(shù)的入?yún) = ('Mike', 75),因此i[1]就代表取value。
到此這篇關(guān)于Python中的sorted函數(shù)使用解析的文章就介紹到這了,更多相關(guān)Python中的sorted函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解Python?NumPy如何使用argsort方法進(jìn)行排序
- python3中sort和sorted使用與區(qū)別
- Python高級排序sort()函數(shù)使用技巧實(shí)例探索
- Python中sorted()函數(shù)的強(qiáng)大排序技術(shù)實(shí)例探索
- Python中的sorted函數(shù)應(yīng)用及文件操作詳解
- Python sort 自定義函數(shù)排序問題
- Python排序方法中sort和sorted的區(qū)別詳解
- Python 列表 sort()函數(shù)使用實(shí)例詳解
- Python中sort函數(shù)正則表達(dá)式的使用
相關(guān)文章
python實(shí)現(xiàn)的解析crontab配置文件代碼
這篇文章主要介紹了python實(shí)現(xiàn)的解析crontab配置文件代碼,也可以說是python版的crontab,代碼中包含大量注釋,需要的朋友可以參考下2014-06-06
python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件的方法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)實(shí)時(shí)監(jiān)控文件的3種方法,感興趣的小伙伴們可以參考一下2016-08-08
python抓取網(wǎng)頁時(shí)字符集轉(zhuǎn)換問題處理方案分享
python學(xué)習(xí)過程中發(fā)現(xiàn)英文不好學(xué)起來挺困難的,其中小弟就遇到一個(gè)十分蛋疼的問題,百度了半天就沒找到解決辦法~囧~摸索了半天自己解決了,記錄下來與君共勉。2014-06-06
python爬蟲框架Scrapy基本應(yīng)用學(xué)習(xí)教程
這篇文章主要為大家介紹了python爬蟲框架Scrapy的基本應(yīng)用學(xué)習(xí)教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
Django高級編程之自定義Field實(shí)現(xiàn)多語言
這篇文章主要介紹了Django高級編程之自定義Field實(shí)現(xiàn)多語言,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

