Python中的时间间隔重叠

假设我有时间间隔列表,例如

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]]
上一篇:生成每个可能的整数间隔


下一篇:贪心三两道