python中的时间间隔重叠 [英] Time Interval overlap in python

查看:205
本文介绍了python中的时间间隔重叠的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有类似的时间间隔列表

Suppose I have list of time interval like

a = [datetime.time(0,0),datetime.time(8,0)]

现在我在列表中有一些间隔,如下所示.

Now I Have lacs of intervals in list like given below.

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.像示例结果一样.

We have to filter list b with intervals containing interval a. like in example result will be.

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

Note: I have changed end time from 00 to 23:59:59 but the case remain persistent as we need to understand that daily interval of 00:00 to 08:00 is contained in interval of 15:00 to 09:00

提示: 我将15:00到09:00分为两个时间间隔:00:00-09:00和15:00-23:59:59

Hint: I have divided 15:00 to 09:00 into two intervals: 00:00-09:00 and 15:00-23:59:59

推荐答案

您的代码有错误(使用datetime/datetime.time).

Your code has errors (usage of datetime/datetime.time).

此代码将从b的所有内容中过滤掉,这些内容与a不重叠:

This code will filter out from b everything, that does not overlap with a:

b = [x for x in b if a[0] < x[1] and x[0] < a[1]]

这篇关于python中的时间间隔重叠的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆