在Python中对跨越月份而没有年份的日期进行排序



在python中,有什么简洁的方法可以对跨越月份甚至不同年份的天数进行排序吗?例如,这个列表从12月23日开始到次年1月8日:

[
( 1,  1),
( 1,  2),
( 1,  3),
( 1,  4),
( 1,  5),
( 1,  6),
( 1,  7),
( 1,  8),
(12, 23),
(12, 24),
(12, 25),
(12, 26),
(12, 27),
(12, 28),
(12, 29),
(12, 30),
(12, 31)
]

您还需要在列表中添加年份列。如果年份被添加到索引2,您可以这样使用排序函数:

x=[
( 1,  1,2018),
( 1,  2,2018),
( 1,  3,2018),
( 1,  4,2018),
( 1,  5,2018),
( 1,  6,2018),
( 1,  7,2018),
( 1,  8,2018),
(12, 23,2017),
(12, 24,2017),
(12, 25,2017),
(12, 26,2017),]
x.sort(lambda i:[i[2],i[0],[1]])

它按年份、月份和日期的顺序进行排序

正如其他答案所建议的那样,您需要年份来对日期进行排序。

以下是使用日期时间模块的另一种方法:

import datetime
date_list = [( 1,  1), ...]
date_list = [datetime.date(month=date[0], day=date[1], year=2012) for date in date_list]
date_list.sort()

最新更新