首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按特定值对dicts列表进行排序?

如何按特定值对dicts列表进行排序?
EN

Stack Overflow用户
提问于 2018-12-14 00:25:37
回答 1查看 0关注 0票数 0

我有一个如下所示的dicts列表:

代码语言:javascript
复制
[{"SMID": 45889, "IRR": 1.23, "EffectiveDate": '1990-06-30', "PreviousDate": '1990-05-30', 'LastPrice': 100 },
 {"SMID": 45889, "IRR": 4.33, "EffectiveDate": '1990-07-30', "PreviousDate": '1990-06-30', 'LastPrice': 103 },
 {"SMID": 45889, "IRR": 5.25, "EffectiveDate": '1990-08-30', "PreviousDate": '1990-07-30', 'LastPrice': 110 },
 {"SMID": 45889, "IRR": 5.28, "EffectiveDate": '1990-09-30', "PreviousDate": '1990-08-30', 'LastPrice': 111 },
 {"SMID": 45889, "IRR": 3.73, "EffectiveDate": '1990-03-30', "PreviousDate": '1990-09-30', 'LastPrice': 123 }]

我想弄清楚按日期对它们进行排序的方法(我知道它们已经在这里排序了)。我正在研究OrderedDicts,但这只是跟踪了如何插入dicts。有人有主意吗?

EN

Stack Overflow用户

发布于 2018-12-14 10:01:40

这个问题已经回答了好几次,你唯一想要弄清楚自己的部分就是把dates string变成可比的东西。这里有两种方法,字面上是建议注释的修改版本。

代码语言:javascript
复制
x = [{"SMID": 45889, "IRR": 1.23, "EffectiveDate": '1992-06-30', "PreviousDate": '1990-05-30', 'LastPrice': 100 },
 {"SMID": 45889, "IRR": 4.33, "EffectiveDate": '1990-07-30', "PreviousDate": '1990-06-30', 'LastPrice': 103 },
 {"SMID": 45889, "IRR": 5.25, "EffectiveDate": '1990-08-30', "PreviousDate": '1990-07-30', 'LastPrice': 110 },
 {"SMID": 45889, "IRR": 5.28, "EffectiveDate": '1990-09-30', "PreviousDate": '1990-08-30', 'LastPrice': 111 },
 {"SMID": 45889, "IRR": 3.73, "EffectiveDate": '1990-03-30', "PreviousDate": '1990-09-30', 'LastPrice': 123 }]

1)使用datetime模块构建datetime对象

代码语言:javascript
复制
from datetime import datetime
sorted_x = sorted(x, key=lambda val:datetime.strptime((val['EffectiveDate']), '%Y-%M-%d'))

2)或者使用dateutil模块(它不是标准库的一部分,如@ Delirious Lettuce所述。但它是一种快速将字符串转换为日期对象的便捷方式。

代码语言:javascript
复制
from dateutil import parser
sorted_x = sorted(x, key=lambda val:parser.parse(val['EffectiveDate']))
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档