python - python中的时间间隔重叠

标签 python list datetime intervals

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

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/

相关文章:

python - 在 app.yaml 中使用登录设置对 gae 进行单元测试

python - lxml 无法解析 xml(编码是否为 utf-8)[python]

java - 容器的投影,即将 List<Object> 转换为 List<Object.Member> 的方法

excel - 在python中将 '0000-00-00'转换为 'flag'

python - 在 MySQL 中搜索短语关键字

python - 如何将 python gcc 绑定(bind)更改为 gcc 4.8 版本?

python - 在 tkinter 中将单个像素绘制到 Canvas 上

python - 在Python中循环创建和覆盖数据框(列表)

python - 从日期中减去 timedelta - pandas

sql - PostgreSQL:根据日期识别回访者 - 连接或窗口函数?