python - python:根据时间字符串的元素对dict列表进行排序
问题描述
我有一个字典列表。在其他元素中,列表中的每个 dict 都有一个日期和时间元素,看起来像 - 2018-08-14T14:42:14
。我编写了一个函数,它比较两个这样的字符串并返回最近的一个。我如何使用它对列表进行排序(最近的优先)?此外,每个 dict 的大小都很大,因此,如果可能的话,我想对数组的索引进行排序(根据时间元素)而不是整个数组。我在这个网站上看到了其他类似的问题,但它们都讲述了基于已知数据类型(如 int 或 string)的排序。
解决方案
以 ISO 格式编写的日期有一个很好的属性 - 如果您按字母顺序对它们进行排序,那么您也可以根据日期值对它们进行排序(当然,如果它们属于一个时区)。只需使用list.sort()函数即可。这将就地排序列表。无论如何,您不必担心内存,因为创建第二个排序列表不会占用太多内存,因为它包含对第一个列表中字典的引用。
a = [
{'time': '2018-01-02T00:00:00Z'},
{'time': '2018-01-01T00:00:00Z'},
]
a.sort(key=lambda x: x['time'])
print(a)
推荐阅读
- javascript - 正则表达式从时间和日期中删除时间
- perl - 如何在 XML::LibXML 中注册实体进行解析?
- php - 使用 PSR 7、17 和 18 而不是 Guzzle 的客户端无关 API 包装器
- sql - 如何在配置单元中提取字符串的一部分
- reactjs - 如何将状态值作为道具传递并将其设置在子级中?
- java - 控制器中的错误身份验证对象 [Spring-Boot]
- css - `word-spacing` 属性中的百分比是什么意思?
- elasticsearch - 如何在开发工具查询中使用“OR”
- html - 用于覆盖列表项 boostrap 的内联样式
- html - CSS div 类不调整为最大宽度