Python以[MMM dd,MMM dd ...]格式排序日期列表

时间:2014-06-18 14:14:26

标签: python sorting date operator-keyword

我有一个格式

的列表
['Jan 01', 'Feb 02', 'Mar 05', 'Feb 04', 'Jan 05', ...]

我想对它进行排序

['Jan 01', 'Jan 05', 'Feb 02', 'Feb 04', 'Mar 05'...]

我知道operator.itemgetter('date')之类的内容,但不认为这会适用于此格式

1 个答案:

答案 0 :(得分:6)

您可以将日期解析为datetime个对象:

from datetime import datetime

sorted(lst, key=lambda d: datetime.strptime(d, '%b %d'))

然后使用已解析的datetime对象来确定排序。

演示:

>>> from datetime import datetime
>>> lst = ['Jan 01', 'Feb 02', 'Mar 05', 'Feb 04', 'Jan 05']
>>> sorted(lst, key=lambda d: datetime.strptime(d, '%b %d'))
['Jan 01', 'Jan 05', 'Feb 02', 'Feb 04', 'Mar 05']