要根據字典列表中的特定數值鍵進行排序,我們可以使用 Python 的 sorted()
函數配合自定義排序鍵。以下是操作方法:
1. 按升序排序(從小到大)
sorted_list = sorted(original_list, key=lambda x: x['數值鍵名'])
2. 按降序排序(從大到小)
sorted_list = sorted(original_list, key=lambda x: x['數值鍵名'], reverse=True)
示例代碼
假設有以下數據(假設數值鍵名為 "score"
):
data = [{"name": "Alice", "score": 88},{"name": "Bob", "score": 92},{"name": "Charlie", "score": 75}
]# 按 score 升序排序
sorted_asc = sorted(data, key=lambda x: x["score"])
print(sorted_asc)
# 輸出:[{'name': 'Charlie', 'score': 75}, {'name': 'Alice', 'score': 88}, {'name': 'Bob', 'score': 92}]# 按 score 降序排序
sorted_desc = sorted(data, key=lambda x: x["score"], reverse=True)
print(sorted_desc)
# 輸出:[{'name': 'Bob', 'score': 92}, {'name': 'Alice', 'score': 88}, {'name': 'Charlie', 'score': 75}]
關鍵說明:
- 替換鍵名:將代碼中的
'數值鍵名'
替換為實際字典中的數值鍵(如"age"
,"price"
,"weight"
等)。 - 保留完整字典:排序后的列表會完整保留每個字典的所有鍵值對,僅順序發生變化。
- 數值類型:要求目標鍵的值必須是數字(整數或浮點數),否則會拋出類型錯誤。
復雜情況處理
如果數值鍵可能缺失或包含非數字值,可添加異常處理:
sorted_list = sorted(original_list, key=lambda x: float(x['數值鍵名']) if str(x['數值鍵名']).replace('.', '').isdigit() else 0)
請將 數值鍵名 替換為實際字典中的鍵名(如
"age"
,"height"
,"price"
等),即可直接使用代碼。