gpt4 book ai didi

Python:使用 lambda 以 str 格式对日期时间进行排序

转载 作者:行者123 更新时间:2023-11-28 21:54:29 24 4
gpt4 key购买 nike

我正在使用 sorted(response, key=lambda k: k['createDate'], reverse=False) 将最新的列表成员排序到列表的前面。问题是我的日期时间是字符串格式 %Y-%m-%d %I:%M:%S %p。如果我这样做,它将通过字符串比较而不是日期时间比较来排序。我该如何解决这个问题?

编辑:忘了说我使用的是 Python 3.4。

最佳答案

您必须在关键函数中将您的值解析为日期时间对象:

from datetime import datetime

sorted(
response,
key=lambda k: datetime.strptime(k['createDate'], '%Y-%m-%d %I:%M:%S %p'),
reverse=True,
)

如果您的日期格式略有不同,您可以使用直接字符串排序; ISO8601 日期(格式为 '%Y-%m-%d %H:%M:%S')可按字典顺序排序。

我还更改了排序顺序;您想要颠倒顺序,最近的 datetime 值将高于它之前的值:

>>> datetime(2014, 6, 11, 17, 16, 10) > datetime(2008, 9, 15, 12, 00, 00)
True

因此,如果您不反转排序,最新的值将被排序为最后的元素。

关于Python:使用 lambda 以 str 格式对日期时间进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24168812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com