python根據字典的值進行排序:


有一個列表嵌套字典:[{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d": 3}], 他們的值是不一樣的, 現在要根據值進行排序:

思路:對於值排序,首先把字典中的值取出來, 把使這個值所在的字典和比它小的換位置這樣就可以根據值進行排序

根據不同的鍵進行排序也是一樣的。

具體代碼實現

 1 # 定義方法取出字典中的值
 2 def get_val(_dict):
 3     val = list(_dict.values())[0]  # 根據值進行排序:將.values()改為.keys()就ok了
 4     return val
 5 
 6 
 7 # 定義排序規則
 8 def boff_sort(_list):
 9     n = len(_list)
10     for i in range(n-1):
11         for j in range(n-1-i):
12             if get_val(_list[j]) > get_val(_list[j+1]):  # 那到字典中的值進行排序
13                 _list[j], _list[j+1] = _list[j+1], _list[j]
14 
15 
16 if __name__ == '__main__':
17     li = [{"a": 5}, {"b": 4}, {"c": 1},{"e": 2}, {"d": 3}]
18     boff_sort(li)
19     print(li)
20 # 運行結果為[{'c': 1}, {'e': 2}, {'d': 3}, {'b': 4}, {'a': 5}]

 

對相同的鍵進行排序的時候很簡單 使用lambda函數就可以搞定。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM