python中字典dict排序sorted的實現(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是升序還是降序,默認False為升序
二、按照keys的順序?qū)ict中的keys排序
這里忽略dict中的values的存在,直接使用迭代器P.keys()排序即可,類似與list的排序
sorted(P.keys())
三、按照valuse的順序?qū)ict中的values排序
這里忽略dict中的keys的存在,直接使用迭代器P.valuse()排序即可,類似與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()是一個迭代器,其中每個元素以元組(1,10),(2,25),…的形式.lambda
中tiem表示迭代器中的每個具體的元素,所以item[0]會表示原dict中的keys值.sorted中的key值是選擇了dict中的keys作為排序的準則.
或者,上面是一種理解的形式,下面的一種對sorted對dict的默認形式.本質(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]
八、字典的先進先出
OrderedDict 是 按照有序插入順序存儲 的有序字典。
from collections import OrderedDict
增加方法: popitem(last=True)
移除并返回一個鍵值對,last=True 時,后進先出,反之,先進先出。
move_to_end(key, last=True)
last=True時,將鍵值對移至最右。反之,移至最左。key不存在時,拋錯 KeyError。
到此這篇關(guān)于python中字典dict排序sorted的實現(xiàn)的文章就介紹到這了,更多相關(guān)python字典dict排序sorted內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Jupyter Notebook 文件默認目錄的查看以及更改步驟
這篇文章主要介紹了Jupyter Notebook 文件默認目錄的查看以及更改步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04零基礎(chǔ)寫python爬蟲之urllib2中的兩個重要概念:Openers和Handlers
文章首先介紹了urllib2的2個方法,然后詳細介紹了urllib2中的2個重要概念Openers和Handlers的相關(guān)知識,希望能對大家有所幫助2014-11-11python輸出第n個默尼森數(shù)的實現(xiàn)示例
這篇文章主要介紹了python輸出第n個默尼森數(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03Python學習工具jupyter notebook安裝及用法解析
這篇文章主要介紹了Python學習工具jupyter notebook安裝及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題
這篇文章主要介紹了解決Keras中循環(huán)使用K.ctc_decode內(nèi)存不釋放的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06windows環(huán)境下tensorflow安裝過程詳解
這篇文章主要為大家詳細介紹了windows環(huán)境下tensorflow安裝過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03pandas中std和numpy的np.std區(qū)別及說明
這篇文章主要介紹了pandas中std和numpy的np.std區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08