我有一个这样的清单:
['25/May/2015', '27/May/2015', '27/Apr/2015', '27/Jan/2015', '07/May/2015' '22/May/2015', '16/Jan/2015', '29/Jan/2015', '28/Feb/2015', '18/Feb/2015', '08/May/2015', '20/Jan/2015', '24/Jan/2015', '31/Mar/2015', '30/Apr/2015', '17/Feb/2015', '19/Mar/2015', '05/May/2015', '22/Jan/2015', '14/Aug/2015', '26/Feb/2015', '14/Mar/2015', '28/May/2015']']
我想按月订购日期:jan,feb,march等... 而且我想在白天订购它们,这意味着第一天必须是:1 / jan / 2015然后2 / jan / 2015
我试图对列表进行排序:
days.sort()
但它按天而不是按月订购列表。
任何人都会非常感激
答案 0 :(得分:1)
使用密钥尝试sorted。
from datetime import datetime
days_sorted = sorted(days, key=lambda day: datetime.strptime(day, "%d/%b/%Y"))
答案 1 :(得分:0)
您将要使用自己的比较功能对日期进行排序。 sort
允许这样做,您只需要说list.sort(key=comparison_function)
即可。为了比较列表中的月份,我想出了一个简单的想法
months = {"Jan":0, "Feb":1, "Mar":2, "Apr":3, "May":4, "Jun":5, "Jul":6, "Aug":7, "Sep":8, "Oct":9, "Nov":10, "Dec":11 }
制作一个dict
,将每个月变为相应的数字
def month_value(date):
return months[date.split('/')[1]]
编写一个函数,它接受一个字符串并返回它的第二个组件的值。
dates.sort(key=month_value)
这将根据他们的月份对日期进行排序。