Python 按 [MMM dd, MMM dd...] 格式排序日期列表
我有一个列表,格式是这样的:
['Jan 01', 'Feb 02', 'Mar 05', 'Feb 04', 'Jan 05', ...]
我想把它排序,得到这样的结果:
['Jan 01', 'Jan 05', 'Feb 02', 'Feb 04', 'Mar 05'...]
我知道像 operator.itemgetter('date')
这样的东西,但我觉得它不适合这个格式。
1 个回答
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']