如何基于嵌套字典的最后y值对Python字典列表进行降序排序
实现方案
直接使用Python内置的sorted()函数,通过key参数指定排序规则,设置reverse=True实现降序即可。
完整示例代码
# 原始数据 raw_list = [ { "instrument": "AUD", "changes": [ {"x": 1632765600000, "y": 0}, {"x": 1632769200000, "y": 1}, {"x": 1632772800000, "y": 2}, {"x": 1632776400000, "y": 3}, ] }, { "instrument": "USD", "changes": [ {"x": 1632765600000, "y": 0}, {"x": 1632769200000, "y": 2}, {"x": 1632772800000, "y": 3}, {"x": 1632776400000, "y": 4}, ] }, ] # 排序逻辑:按每个字典changes数组最后一个元素的y值降序排列 sorted_list = sorted(raw_list, key=lambda item: item["changes"][-1]["y"], reverse=True) # 打印验证结果 print(sorted_list)
代码说明
key=lambda item: item["changes"][-1]["y"]:指定排序的计算规则,对列表中的每一个字典元素,先取changes属性的最后一个元素(用索引-1),再取该元素的y值作为排序比较的键reverse=True:设置为降序排列,y值越大的元素越靠前
运行上述代码后得到的sorted_list就是要求的排序后结果。
内容的提问来源于stack exchange,提问作者Kogelet
相关产品推荐
相关产品推荐

