您好,登錄后才能下訂單哦!
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è)資訊頻道。
免責(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)容。