溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python對(duì)字典進(jìn)行排序的方法有哪些

發(fā)布時(shí)間:2020-08-21 10:54:01 來源:億速云 閱讀:123 作者:小新 欄目:編程語言

python對(duì)字典進(jìn)行排序的方法有哪些?這個(gè)問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個(gè)問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

python如何對(duì)字典排序?

對(duì)字典進(jìn)行排序?這其實(shí)是一個(gè)偽命題,搞清楚python字典的定義---字典本身默認(rèn)以key的字符順序輸出顯示---就像我們用的真實(shí)的字典一樣,按照abcd字母的順序排列,并且本質(zhì)上各自沒有先后關(guān)系,是一個(gè)哈希表的結(jié)構(gòu)。

但實(shí)際應(yīng)用中我們確實(shí)有這種排序的“需求”-----按照values的值“排序”輸出,或者按照別的奇怪的順序進(jìn)行輸出,我們只需要把字典轉(zhuǎn)化成list或者tuple,把字典每一對(duì)鍵值轉(zhuǎn)化為list中的兩位子list或者子tuple再輸出,就可以達(dá)到我們的目的:

舉例如下:

d1 = {'a':1,'c':4,'b':2,'d':3}
d2 = {2:1,3:4,4:2,1:5,5:3}
d3 = {'01': {'name': '電腦', 'price': 3000}, '02': {'name': '鼠標(biāo)', 'price': 50}, '03': {'name': '洗發(fā)水',
'price': 30}, '04': {'name': '微波爐', 'price': 998}, '05': {'name': '手機(jī)', 'price': 1500}}

需求一:按照字典的key/value進(jìn)行排序輸出

方法一:使用sorted函數(shù)

sorted(d1.items(),key = lambda x:x[0],reverse = True)  # reverse = True:是遞減順序輸出,不寫默認(rèn)是升序輸出
key = lambda x:x[0]表示在d1.items()的輸出內(nèi)容中的第一列作為排序依據(jù),如果是按照value排序則改成x[1]即可。

d1/d2字典比較簡單,都好理解,下面來看看如何對(duì)d3這種嵌套類型的字典進(jìn)行排序:

sorted(d.items(),key=lambda x:x[1]['price'])

方法二:使用oprator內(nèi)建模塊

import operator
sorted(d1.items(),key = operator.itemgetter(1))

此模塊目前實(shí)驗(yàn)對(duì)于d3這種數(shù)據(jù)結(jié)構(gòu)尚未成功。

感謝各位的閱讀!看完上述內(nèi)容,你們對(duì)python對(duì)字典進(jìn)行排序的方法有哪些大概了解了嗎?希望文章內(nèi)容對(duì)大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI