如何在Python中排序字典?


字典是一種由鍵值對組成的資料結構。我們可以根據兩種標準對字典進行排序:

按鍵排序 - 字典按其鍵的升序排序。值不被考慮。

按值排序 - 字典按其值的升序排序。

方法一:按鍵排序字典

這種方法將字典按其鍵的升序排序。

輸入

{2:90, 1: 100, 8: 3, 5: 67, 3: 5}

輸出

{1:100, 2:90, 3:5, 5:67, 8:3}

如上所示,我們可以看到字典是根據其鍵排序的。

示例

 線上演示

dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2={}
for i in sorted(dic):
   dic2[i]=dic[i]
print(dic2)

輸出

{1: 100, 2: 90, 3: 5, 5: 67, 8: 3}

程式碼逐行解釋

  • 宣告要排序的字典

  • 宣告一個空字典,用於新增排序後的鍵值對

  • sorted(dic) 包含 dic 中所有按鍵的升序排列。它只包含鍵,不包含鍵值對。sorted(dic) 將包含 [1,2,3,5,8]

  • 對於每個按鍵的升序排列,將鍵和相應的值新增到 dic2 中。

  • dic2 包含按鍵升序排列的所有鍵值對

方法二:按值排序字典

這種方法將字典按其值的升序排序。

輸入

{2:90, 1: 100, 8: 3, 5: 67, 3: 5}

輸出

{8:3, 3:5 ,5:67 , 2:90, 1:100}

如上所示,我們可以看到字典是根據其值排序的。

  • 我們一起使用 sorted() 和 items() 方法按值對字典進行排序。

  • items() 用於檢索字典的專案或值。

  • key=lambda x: x[1] 是一種使用 lambda 函式的排序機制。

  • 這給了我們鍵值對,然後使用 dict() 將其轉換為字典。

示例

 線上演示

dic={2:90, 1: 100, 8: 3, 5: 67, 3: 5}
dic2=dict(sorted(dic.items(),key= lambda x:x[1]))
print(dic2)

輸出

{8: 3, 3: 5, 5: 67, 2: 90, 1: 100}

更新於:2021年3月11日

5K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.