python如何對字典排序?
對字典進行排序?這其實是個偽命題,搞清楚python字典的定義---字典本身預設以key的字元順序輸出顯示---就像我們用的真實的字典一樣,按照abcd字母的順序排列,並且本質上各自沒有先後關係,是一個雜湊表的結構。
但實際應用中我們確實有這種排序的「需求」-----按照values的值「排序」輸出,或是依照別的奇怪的順序輸出,我們只需要把字典轉換成list或tuple,把字典每一對鍵值轉換為list中的兩位子list或者子tuple再輸出,就可以達到我們的目的:
#舉例如下:
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': '鼠标', 'price': 50}, '03': {'name': '洗发水', 'price': 30}, '04': {'name': '微波炉', 'price': 998}, '05': {'name': '手机', 'price': 1500}}
相關推薦:《Python影片教學》
需求一:依照字典的key/value進行排序輸出
方法一:使用sorted函數
sorted(d1.items(),key = lambda x:x[0],reverse = True) # reverse = True:是递减顺序输出,不写默认是升序输出 key = lambda x:x[0]表示在d1.items()的输出内容中的第一列作为排序依据,如果是按照value排序则改成x[1]即可。
d1/d2字典比較簡單,都很理解,下面來看看如何對d3這種巢狀型別的字典進行排序:
sorted(d.items(),key=lambda x:x[1]['price'])
方法二:使用oprator內建模區塊
import operator sorted(d1.items(),key = operator.itemgetter(1))
此模組目前實驗對於d3這種資料結構尚未成功。
以上是python如何對字典進行排序的詳細內容。更多資訊請關注PHP中文網其他相關文章!