python根據字典的值進行排序:
阿新 • • 發佈:2017-12-29
字典 blog 取出 運行 log 排序規則 style value 代碼實現
有一個列表嵌套字典:[{"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函數就可以搞定。
python根據字典的值進行排序: