假设我有时间间隔列表,例如
a = [datetime.time(0,0),datetime.time(8,0)]
现在我在列表中缺少间隔,如下所示。
b = [[datetime.time(0,0),datetime.time(8,0)], [datetime.time(0,0),datetime.time(10,0)], [datetime.time(0,0),datetime.time(23,59,59)], [datetime.time(15,0),datetime.time(9,0)], [datetime.time(9,0),datetime.time(15,0)]]
我们必须使用包含区间 a 的区间来过滤列表 b。就像示例中的结果一样。
b = [[datetime.time(0,0),datetime.time(8,0)], [datetime.time(0,0),datetime.time(10,0)], [datetime.time(0,0),datetime.time(23,59,59)], [datetime.time(15,0),datetime.time(9,0)]]
注意:我已将结束时间从 00 更改为 23:59:59,但这种情况仍然存在,因为我们需要了解每天 00:00 到 08:00 的间隔包含在 15:00 到 09 的间隔中: 00
提示: 我把15:00到09:00分为两个区间:00:00-09:00和15:00-23:59:59
最佳答案
您的代码有错误(使用datetime/datetime.time
)。
此代码将从 b
中过滤掉与 a
不重叠的所有内容:
b = [x for x in b if a[0] < x[1] and x[0] < a[1]]
关于python - python中的时间间隔重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390698/