man*_*ish 1 python sorting date list python-3.x
有人可以指导如何对月份列表进行排序吗?
INPUT = ['August', 'September', 'October', 'November', 'December', 'January']
OUTPUT= ['January','August', 'September', 'October', 'November', 'December']
Run Code Online (Sandbox Code Playgroud)
calendar.month_name是按正确顺序排列的月份数组。您可以按此列表中每个字符串的索引进行排序,假设您的输入字符串格式正确:
>>> from calendar import month_name
>>> months = ['August', 'September', 'October', 'November', 'December', 'January']
>>> month_lookup = list(month_name)
>>> sorted(months, key=month_lookup.index)
['January', 'August', 'September', 'October', 'November', 'December']
Run Code Online (Sandbox Code Playgroud)
您还可以使用datetime.strptime与"%B"完整月份名称匹配的格式字符串。
>>> from datetime import datetime
>>> months = ['August', 'September', 'October', 'November', 'December', 'January']
>>> sorted(months, key=lambda m: datetime.strptime(m, "%B"))
['January', 'August', 'September', 'October', 'November', 'December']
Run Code Online (Sandbox Code Playgroud)
请注意,这两种解决方案都会在包含无效月份字符串的列表中引发错误。