为了账号安全,请及时绑定邮箱和手机立即绑定

Python:以日期时间为键对嵌套字典进行排序

Python:以日期时间为键对嵌套字典进行排序

蛊毒传说 2024-01-15 17:21:34
我有一个字典列表,每个条目都有一个日期时间对象作为键。我如何根据键对其进行排序?from datetime import datetimebuffer = [{datetime(2020, 5, 3, 9, 42, 00): {'data': 46, 'id': 'john'}},          {datetime(2020, 5, 3, 9, 54, 00): {'data': 48, 'id': 'george'}},          {datetime(2020, 5, 3, 9, 36, 00): {'data': 49, 'id': 'paul'}},          {datetime(2020, 5, 3, 9, 24, 00): {'data': 51, 'id': 'ringo'}}]我在追寻这个:[{datetime(2020, 5, 3, 9, 24, 00): {'data': 51, 'id': 'ringo'}},{datetime(2020, 5, 3, 9, 36, 00): {'data': 49, 'id': 'paul'}},{datetime(2020, 5, 3, 9, 42, 00): {'data': 46, 'id': 'john'}},{datetime(2020, 5, 3, 9, 54, 00): {'data': 48, 'id': 'george'}}]
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

如果每个字典只有一个键:


from pprint import pprint

from datetime import datetime


buffer = [{datetime(2020, 5, 3, 9, 42, 00): {'data': 46, 'id': 'john'}},

          {datetime(2020, 5, 3, 9, 54, 00): {'data': 48, 'id': 'george'}},

          {datetime(2020, 5, 3, 9, 36, 00): {'data': 49, 'id': 'paul'}},

          {datetime(2020, 5, 3, 9, 24, 00): {'data': 51, 'id': 'ringo'}}]


out = sorted(buffer, key=lambda k: list(k)[0])

pprint(out)

印刷:


[{datetime.datetime(2020, 5, 3, 9, 24): {'data': 51, 'id': 'ringo'}},

 {datetime.datetime(2020, 5, 3, 9, 36): {'data': 49, 'id': 'paul'}},

 {datetime.datetime(2020, 5, 3, 9, 42): {'data': 46, 'id': 'john'}},

 {datetime.datetime(2020, 5, 3, 9, 54): {'data': 48, 'id': 'george'}}]


查看完整回答
反对 回复 2024-01-15
  • 1 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信