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

0 投票
1 回答
553 浏览
提问于 2025-04-18 10:13

我有一个列表,格式是这样的:

['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']

撰写回答