我有一个格式
的列表['Jan 01', 'Feb 02', 'Mar 05', 'Feb 04', 'Jan 05', ...]
我想对它进行排序
['Jan 01', 'Jan 05', 'Feb 02', 'Feb 04', 'Mar 05'...]
我知道operator.itemgetter('date')
之类的内容,但不认为这会适用于此格式
答案 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']