網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

python字典按值的大小排序

欄目: IT科技 / 發佈於: / 人氣:4.54K
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

python字典按值的大小排序怎麼操作?一起來看看小編今天的分享吧!

python字典按值的大小排序可以透過sorted函數進行操作。

操作方法:

首先生成一個隨機字典。

from random import randintd={x:randint(60,99) for x in "abcdefg"}   # {'a': 62, 'b': 97, 'c': 87, 'd': 68, 'e': 91, 'f': 76, 'g': 88}

總體思路:sorted函數可以對列表[]進行從小到大排序,對於字典{}dict,sorted函數只比較dict的key進行排序,所以要對dict進行調整變形。
1、利用zip函數把dict轉換成一個列表,列表中每個元素都是一個tuple,tuple大小比較原理是,先比較第一個元素,第一個相同在比較第二個。
2、利用sorted函數對轉換後的列表進行排序。

z=zip(d.values(),d.keys())   #[(62, 'a'), (74, 'b'), (83, 'c'), (96, 'd'), (75, 'e'), (79, 'f'), (83, 'g')],

然後對這個列表進行sorted排序

sorted(z)

python字典按值的大小排序

另外,[(a1,b1,c1),(a2,b2,c2),(a3,b3,c3),(a4,b4,c4)……]    sorted函數可以對這種集合進行指定元素排序。

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

第一個從參數是需要排序的列表,第二個參數是指定key(列表中每一項的第幾個元素)來進行排序。
解釋這句代碼:d.items()返回的是一個列表  [('a', 74), ('b', 90), ('c', 84), ('d', 85), ('e', 64), ('f', 66), ('g', 88)]
sorted會對d.items()這個list進行遍歷,把list中的每一個元素,也就是每一個tuple()當做x傳入匿名函數lambda x:x[1],函數返回值爲x[1],
也就是key=x[1]=tuple()[1]=('a', 74)[1],也就是說按照裏表中每個項的第二個元素進行排序(第一個是想x[0]).