假设我有时间间隔列表,如
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
答案 0 :(得分:2)
您的代码有错误(使用datetime/datetime.time
)。
此代码将从b
过滤掉与a
不重叠的所有内容:
b = [x for x in b if a[0] < x[1] and x[0] < a[1]]