有一个订购日期列表:
[
datetime.date(2006, 8, 15),
datetime.date(2006, 9, 12),
datetime.date(2007, 8, 10),
datetime.date(2021, 4, 6),
datetime.date(2021, 4, 16),
datetime.date(2021, 4, 19)
...
]
我希望组包含所有日期之间最多 30 天的日期(组的第一个元素与这些组的最后一个元素之间的距离将 <= 30 天)
例如,使用前面的列表,我会得到:
- group_1 = [datetime.date(2006, 8, 15), datetime.date(2006, 9, 12)](日期之间 <= 30 天)
- group_2 = [datetime.date(2021, 4, 6), datetime.date(2021, 4, 16), datetime.date(2021, 4, 19)] <=30
- group_3 = [datetime.date(2007, 8, 10)](没有其他相关日期 <= 30 天)
我尝试使用 iter-tools groupby 但关键功能不允许像“lambda x,y: (xy).days <= 30 ....”这样的 2 个日期比较我不知道我是否可以使用 groupby解决这个问题或者我需要其他的 itertools 功能。我知道我可以为它构建一个 python 算法,但我认为这将存在一个简单的选项来解决这个问题,但我没有找到它:(
谢谢!