python时间重叠_Python中的时间范围重叠算法

我有不同的身份证,开始日期和结束日期,

比如说:[

(5, d.datetime(2010, 9, 19, 0, 0, 0), d.datetime(2010, 9, 19, 0, 5, 10)),

(6, d.datetime(2010, 9, 19, 0, 0, 0), d.datetime(2010, 9, 19, 12, 59, 59)),

(4, d.datetime(2010, 9, 19, 10, 30, 17), d.datetime(2010, 9, 19, 20, 20, 59)),

(6, d.datetime(2010, 9, 19, 14, 12, 0), d.datetime(2010, 9, 19, 23, 59, 59)),

(5, d.datetime(2010, 9, 19, 17, 0, 22), d.datetime(2010, 9, 19, 19, 14, 20))

]

我需要找到重叠的时间范围,并准备一个新的列表,在特定的时间范围内有适当的ID,例如上面的列表结果应该是:

^{pr2}$

视觉概念:

python时间重叠_Python中的时间范围重叠算法_第1张图片

实际上现在我有这样的解决方案:我得到整个范围的最小和最大日期,然后每1秒从min_date迭代到max_date,当在特定的时刻我们匹配目标列表中的一些间隔时,我将匹配的id保存为dictionary key,并将iterator到list的时间作为value,

你可能感兴趣的:(python时间重叠)