gpt4 book ai didi

Python 3 - 以不同形式对字符串格式的日期列表进行排序(带时间和不带时间)

转载 作者:行者123 更新时间:2023-12-01 03:59:37 26 4
gpt4 key购买 nike

我正在尝试对字符串格式的日期列表进行排序,但每个日期的形式都不同,如下所示:

lst = ['11/04/2016, 23:55', '15/11/2014', '04/05/2016, 23:55', '24/11/2013, 12:30', '31/12/2015']

我尝试过以下排序:

lst.sort(key=lambda date: datetime.strptime(date, "%d/%m/%Y, %H:%M"))

但是由于我不知道日期将如何(有或没有特定的时间),所以我陷入了困境..我想不出一个通用条件来对这个列表进行排序,并且我需要保留准确的时间(如果它)给出(即我不想分割字符串并只取 , 之前的内容)。

请帮忙:(

最佳答案

您可以在关键函数中使用 if-else 语句:

>>> lst.sort(key=lambda d: datetime.strptime(d, "%d/%m/%Y, %H:%M") if ':' in d else datetime.strptime(d, "%d/%m/%Y"))
>>> lst
['24/11/2013, 12:30', '15/11/2014', '31/12/2015', '11/04/2016, 23:55', '04/05/2016, 23:55']
>>>

如果您可能有两种以上的日期格式,您可以在非内联函数中处理多个状态。

def key_func(dat):
if ':' in dat:
return datetime.strptime(d, "%d/%m/%Y, %H:%M")
elif cond2:
# return val2
elif cond3:
# return val3

关于Python 3 - 以不同形式对字符串格式的日期列表进行排序(带时间和不带时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36827390/

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