【发布时间】:2021-02-10 13:03:19
【问题描述】:
如何从 python 中的列表值中获取最大月份年份字符串值?
list = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
输出:
February 2021
【问题讨论】:
标签: python string list date max
如何从 python 中的列表值中获取最大月份年份字符串值?
list = ['March 2020', 'January 2020', 'February 2021', 'May 2020', 'April 2019']
输出:
February 2021
【问题讨论】:
标签: python string list date max
您可以使用内置的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.我使用列表推导遍历dates列表,并使用datetime.datetime.strptime()方法以及前面定义的f格式将每个字符串转换为datetime.datetime对象。datetime.datetimeobject,我们可以使用内置的max()方法找到最新的日期,然后将返回的datetime.datetime对象转换为带有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 作为名称 - 这是一个内置函数。
【讨论】:
对于每个位置,使用空格.split(" ") 分割字符串,然后使用datatime 进行比较。您可以使用辅助变量来保存索引
【讨论】:
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"))
【讨论】: