牛魔王的故事
calendar.month_name是一个对象,可以按正确的顺序转换为月份列表。您可以按此列表中每个字符串的索引进行排序,前提是您的输入字符串格式正确:>>> from calendar import month_name>>> month_lookup = list(month_name)>>> months = ['August', 'September', 'October', 'November', 'December', 'January']>>> sorted(months, key=month_lookup.index)['January', 'August', 'September', 'October', 'November', 'December']您还可以使用 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']请注意,这两种解决方案都会引发包含无效月份字符串的列表。日期时间版本给出了更清晰的信息。ValueError
哈士奇WWW
您可以使用以下代码获得月份排序:import datetimemonths_dict = {}for i in range(1,13): months_dict[datetime.date(2020, i, 1).strftime('%B').lower()] = iprint(months_dict)# {'january': 0, 'february': 1, 'march': 2, 'april': 3, 'may': 4, 'june': 5, 'july': 6, 'august': 7, 'september': 8, 'october': 9, 'november': 10, 'december': 11}然后,您可以使用函数对列表进行排序:sortedmonths = ['August', 'September', 'October', 'November', 'December', 'January']print(sorted(months, key=lambda x: months_dict[x.lower()]))# ['January', 'August', 'September', 'October', 'November', 'December']