python如何對字典進行排序

爱喝马黛茶的安东尼
發布: 2019-08-10 15:43:08
原創
3733 人瀏覽過

python如何對字典進行排序

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!