如何从此类字符串列表中获取最新的 "month year" 字符串?
How to get the latest "month year" string from a list of such strings?
如何从 python 中的列表值中获取最大月份年份字符串值?
list = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
输出:
February 2021
对于每个位置,使用space .split(" ")
拆分字符串,然后使用datatime
进行比较。您可以使用辅助变量来保存索引
您可以使用内置的datetime
模块:
from datetime import datetime
dates = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
f = "%B %Y"
print(max([datetime.strptime(d, f) for d in dates]).strftime(f))
解释:
- 将变量命名为内置函数已经采用的名称被认为是一种不好的做法,因此我将您的
list
重命名为 dates
。
- 我定义了一个变量
f
来存储每个日期的格式,其中%B
表示完整的月份名称,%Y
表示完整的年份。
3.I 使用列表理解遍历 dates
列表,并使用 datetime.datetime.strptime()
方法以及 f
格式将每个字符串转换为 datetime.datetime
对象较早定义。
- 最后,将字符串列表转换为
datetime.datetime
对象,我们可以使用内置的max()
method to find the latest date, and then convert the returned datetime.datetime
object into the string with datetime.datetime.strftime()
,使用f
格式。
您可以将 key
参数传递给 max
import datetime
spam = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
print(max(spam, key=lambda dt: datetime.datetime.strptime(dt, '%B %Y'))
附带说明 - 不要使用 list
作为名称 - 它是一个内置函数。
from datetime import datetime
dates = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
datetime_list = [datetime.strptime(date, "%B %Y") for date in dates]
print(max(datetime_list).strftime("%B %Y"))
如何从 python 中的列表值中获取最大月份年份字符串值?
list = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
输出:
February 2021
对于每个位置,使用space .split(" ")
拆分字符串,然后使用datatime
进行比较。您可以使用辅助变量来保存索引
您可以使用内置的datetime
模块:
from datetime import datetime
dates = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
f = "%B %Y"
print(max([datetime.strptime(d, f) for d in dates]).strftime(f))
解释:
- 将变量命名为内置函数已经采用的名称被认为是一种不好的做法,因此我将您的
list
重命名为dates
。 - 我定义了一个变量
f
来存储每个日期的格式,其中%B
表示完整的月份名称,%Y
表示完整的年份。 3.I 使用列表理解遍历dates
列表,并使用datetime.datetime.strptime()
方法以及f
格式将每个字符串转换为datetime.datetime
对象较早定义。 - 最后,将字符串列表转换为
datetime.datetime
对象,我们可以使用内置的max()
method to find the latest date, and then convert the returneddatetime.datetime
object into the string withdatetime.datetime.strftime()
,使用f
格式。
您可以将 key
参数传递给 max
import datetime
spam = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
print(max(spam, key=lambda dt: datetime.datetime.strptime(dt, '%B %Y'))
附带说明 - 不要使用 list
作为名称 - 它是一个内置函数。
from datetime import datetime
dates = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
datetime_list = [datetime.strptime(date, "%B %Y") for date in dates]
print(max(datetime_list).strftime("%B %Y"))