在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()