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

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

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、岳陽(yáng)ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的岳陽(yáng)網(wǎng)站制作公司

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

對(duì)字典進(jìn)行排序?這其實(shí)是一個(gè)偽命題,搞清楚python字典的定義---字典本身默認(rèn)以key的字符順序輸出顯示---就像我們用的真實(shí)的字典一樣,按照abcd字母的順序排列,并且本質(zhì)上各自沒(méi)有先后關(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:是遞減順序輸出,不寫(xiě)默認(rèn)是升序輸出
key = lambda x:x[0]表示在d1.items()的輸出內(nèi)容中的第一列作為排序依據(jù),如果是按照value排序則改成x[1]即可。

d1/d2字典比較簡(jiǎn)單,都好理解,下面來(lái)看看如何對(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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當(dāng)前文章:python對(duì)字典進(jìn)行排序的方法有哪些
文章出自:http://muchs.cn/article46/ipioeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站企業(yè)建站、外貿(mào)建站、ChatGPT、手機(jī)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司