根据日期和时间对 python 中的字符串进行排序
Sort strings in python based on date and time
我有一个这种格式的字符串列表:
my_strings = [
"10.02.20 time 09.24",
"06.02.20 time 08.51",
"10.02.20 time 09.24",
"10.02.20 time 09.25",
"10.02.20 time 09.26",
"10.02.20 time 09.27",
"10.02.20 time 09.28",
"10.02.20 time 09.29"
]
如何根据日期和时间对它们进行正向和反向排序?我想我应该使用类似的东西:
my_strings.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))
但这行不通。
假设你的格式是“day.month.year时间hour.minute”,你需要:
my_strings.sort(key=lambda date: datetime.strptime(date, '%d.%m.%y time %H.%M'))
如果“正常和反向”是指按升序和降序排列,对于后者,您可以使用 my_strings[::-1]
反转排序列表,或者直接使用 my_strings.sort(key=..., reverse=True)
排序。
根据 strptime function 的文档,函数的正确调用是:
strptime(date, "%d.%m.%y time %H.%M")
您在代码中输入的 %b
是“月份作为语言环境的缩写名称(Jan、Feb、...、Dec)”,但正确的 %m
是“月份作为零-填充的十进制数”,并且您还需要在声明其格式的字符串中包含 time %H.%M
,否则您将得到 ValueError: time data '10.02.20 time 09.24' does not match format '%d.%b.%y'
你导入datetime模块的语句可能是import datetime
,试试from datetime import datetime
。
全是代码
from datetime import datetime
my_strings = [
"10.02.20 time 09.24",
"06.02.20 time 08.51",
"10.02.20 time 09.24",
"10.02.20 time 09.25",
"10.02.20 time 09.26",
"10.02.20 time 09.27",
"10.02.20 time 09.28",
"10.02.20 time 09.29"
]
my_strings.sort(key=lambda date: datetime.strptime(date, "%y.%m.%d time %H.%M"))
print(my_strings)
我有一个这种格式的字符串列表:
my_strings = [
"10.02.20 time 09.24",
"06.02.20 time 08.51",
"10.02.20 time 09.24",
"10.02.20 time 09.25",
"10.02.20 time 09.26",
"10.02.20 time 09.27",
"10.02.20 time 09.28",
"10.02.20 time 09.29"
]
如何根据日期和时间对它们进行正向和反向排序?我想我应该使用类似的东西:
my_strings.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))
但这行不通。
假设你的格式是“day.month.year时间hour.minute”,你需要:
my_strings.sort(key=lambda date: datetime.strptime(date, '%d.%m.%y time %H.%M'))
如果“正常和反向”是指按升序和降序排列,对于后者,您可以使用 my_strings[::-1]
反转排序列表,或者直接使用 my_strings.sort(key=..., reverse=True)
排序。
根据 strptime function 的文档,函数的正确调用是:
strptime(date, "%d.%m.%y time %H.%M")
您在代码中输入的 %b
是“月份作为语言环境的缩写名称(Jan、Feb、...、Dec)”,但正确的 %m
是“月份作为零-填充的十进制数”,并且您还需要在声明其格式的字符串中包含 time %H.%M
,否则您将得到 ValueError: time data '10.02.20 time 09.24' does not match format '%d.%b.%y'
你导入datetime模块的语句可能是import datetime
,试试from datetime import datetime
。
全是代码
from datetime import datetime
my_strings = [
"10.02.20 time 09.24",
"06.02.20 time 08.51",
"10.02.20 time 09.24",
"10.02.20 time 09.25",
"10.02.20 time 09.26",
"10.02.20 time 09.27",
"10.02.20 time 09.28",
"10.02.20 time 09.29"
]
my_strings.sort(key=lambda date: datetime.strptime(date, "%y.%m.%d time %H.%M"))
print(my_strings)