Python如何按日期升序排序包含日期字段的字典列表
Python 对带日期字段的字典列表做日期升序排序
待排序的原始数据如下,列表中每个字典的date字段按[日, 月, 年]的顺序存储日期值:
a = [{"date":[14,2,2020],"stockValue":-0.57357144},{"date":[9,2,2020],"stockValue":-0.66407406},{"date":[10,2,2020],"stockValue":-0.62166667}]
由于原生date字段的存储顺序是日在前、年在最后,直接按字段值对比无法得到正确的日期先后,排序时需要将日期值调整为年、月、日的优先级作为排序键即可,两种常用实现如下:
- 原地排序(直接修改原列表顺序):调用列表的
sort()方法,通过lambda自定义排序键
a.sort(key=lambda item: (item["date"][2], item["date"][1], item["date"][0]))
- 非原地排序(保留原列表不变,返回排序后的新列表):使用内置
sorted()函数
sorted_stock_list = sorted(a, key=lambda item: (item["date"][2], item["date"][1], item["date"][0]))
排序完成后,列表内元素会按照日期从早到晚排列,顺序依次为2020年2月9日、2020年2月10日、2020年2月14日对应的三条股票数据。
内容的提问来源于stack exchange,提问作者photonboost
相关产品推荐
相关产品推荐

