我有一个字典列表。在其他元素中,列表中的每个 dict 都有一个日期和时间元素,看起来像 - 2018-08-14T14:42:14
。我编写了一个函数来比较两个这样的字符串并返回最近的一个。我如何使用它对列表进行排序(最近的在前)?此外,每个字典的大小都很大,因此,如果可能的话,我希望对数组的索引进行排序(根据时间元素)而不是整个数组。我在这个站点上看到了其他类似的问题,但所有这些问题都讲述了基于已知数据类型(如 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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句