python中字典dict排序sorted的實(shí)現(xiàn)
key | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
value | 25 | 20 | 15 | 10 | 5 | 30 |
字典P={1:10,2:25,3:5,4:15,5:20,6:30}
有以下3種迭代器:
P.items()
dict_items([(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)])
P.keys()
dict_keys([1, 2, 3, 4, 5, 6])
P.valuse()
dict_values([10, 25, 5, 15, 20, 30])
一、sorted使用
基本用法
list = sorted(iterable, key=None, reverse=False) a = [5,3,4,2,1] print(sorted(a))#[1,2,3,4,5]
- key是排序的關(guān)鍵字
- reverse是升序還是降序,默認(rèn)False為升序
二、按照keys的順序?qū)ict中的keys排序
這里忽略dict中的values的存在,直接使用迭代器P.keys()排序即可,類(lèi)似與list的排序
sorted(P.keys())
三、按照valuse的順序?qū)ict中的values排序
這里忽略dict中的keys的存在,直接使用迭代器P.valuse()排序即可,類(lèi)似與list的排序.
sorted(P.valuse())
四、按照keys的順序?qū)ict中的items排序
sorted(P.items(),key=lambda item:item[0]) # [(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)]
P.iems()是一個(gè)迭代器,其中每個(gè)元素以元組(1,10),(2,25),…的形式.lambda
中tiem表示迭代器中的每個(gè)具體的元素,所以item[0]會(huì)表示原dict中的keys值.sorted中的key值是選擇了dict中的keys作為排序的準(zhǔn)則.
或者,上面是一種理解的形式,下面的一種對(duì)sorted對(duì)dict的默認(rèn)形式.本質(zhì)上是一種.
sorted(P.items()) #[(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)]
五、按照values的順序?qū)ict中的items排序
sorted(P.items(),key=lambda item:item[1]) # [(3, 5), (1, 10), (4, 15), (5, 20), (2, 25), (6, 30)]
理解同上
六、按照keys的順序?qū)ict的values排序
P1=sorted(P.items(),key=lambda item:item[0]) #[(1, 10), (2, 25), (3, 5), (4, 15), (5, 20), (6, 30)] P2=[a[1] for a in P1] # [10, 25, 5, 15, 20, 30]
或者
P2=[a[1] for a in sorted(P.items()]) ]
七、按照values的順序?qū)ict中的keys排序
P1=sorted(P.items(),key=lambda item:item[1] # [(3, 5), (1, 10), (4, 15), (5, 20), (2, 25), (6, 30)] P2=[a[0] for a in P1] # [3, 1, 4, 5, 2, 6]
八、字典的先進(jìn)先出
OrderedDict 是 按照有序插入順序存儲(chǔ) 的有序字典。
from collections import OrderedDict
增加方法: popitem(last=True)
移除并返回一個(gè)鍵值對(duì),last=True 時(shí),后進(jìn)先出,反之,先進(jìn)先出。
move_to_end(key, last=True)
last=True時(shí),將鍵值對(duì)移至最右。反之,移至最左。key不存在時(shí),拋錯(cuò) KeyError。
到此這篇關(guān)于python中字典dict排序sorted的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python字典dict排序sorted內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python簡(jiǎn)單鼠標(biāo)自動(dòng)點(diǎn)擊某區(qū)域的實(shí)例
今天小編就為大家分享一篇python簡(jiǎn)單鼠標(biāo)自動(dòng)點(diǎn)擊某區(qū)域的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06Jupyter Notebook 文件默認(rèn)目錄的查看以及更改步驟
這篇文章主要介紹了Jupyter Notebook 文件默認(rèn)目錄的查看以及更改步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04零基礎(chǔ)寫(xiě)python爬蟲(chóng)之urllib2中的兩個(gè)重要概念:Openers和Handlers
文章首先介紹了urllib2的2個(gè)方法,然后詳細(xì)介紹了urllib2中的2個(gè)重要概念Openers和Handlers的相關(guān)知識(shí),希望能對(duì)大家有所幫助2014-11-11python輸出第n個(gè)默尼森數(shù)的實(shí)現(xiàn)示例
這篇文章主要介紹了python輸出第n個(gè)默尼森數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03python實(shí)現(xiàn)mysql的讀寫(xiě)分離及負(fù)載均衡
這篇文章主要介紹了python實(shí)現(xiàn)mysql的讀寫(xiě)分離及負(fù)載均衡 ,需要的朋友可以參考下2018-02-02python爬蟲(chóng)Scrapy框架:媒體管道原理學(xué)習(xí)分析
這篇文章主要介紹了python爬蟲(chóng)Scrapy框架:媒體管道原理學(xué)習(xí)分析,有需要的朋友可以借鑒參考,希望可以對(duì)廣大一同學(xué)習(xí)的讀者朋友有所幫助2021-09-09Python學(xué)習(xí)工具jupyter notebook安裝及用法解析
這篇文章主要介紹了Python學(xué)習(xí)工具jupyter notebook安裝及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問(wèn)題
這篇文章主要介紹了解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06windows環(huán)境下tensorflow安裝過(guò)程詳解
這篇文章主要為大家詳細(xì)介紹了windows環(huán)境下tensorflow安裝過(guò)程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-03-03pandas中std和numpy的np.std區(qū)別及說(shuō)明
這篇文章主要介紹了pandas中std和numpy的np.std區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08