区间库interval的使用方法

我们常常会用到区间,例如:

1,判断一个数,是不是属于这个区间?

2,两个区间的交集计算?

等等。

下面,来学习interval这个区间库:


一、基本使用:

from interval import Interval

zoom_2_5 = Interval(2, 5)

print(zoom_2_5)

print(2.5 in zoom_2_5)

print(6 in zoom_2_5)

分别返回True和False

这里,已表达区间的定义、判断是否属于两个用法。

关于时间区间:

s1 = datetime.datetime.strptime("2019-03-07 09:30:00", '%Y-%m-%d %H:%M:%S')

s2 = datetime.datetime.strptime("2019-03-07 11:30:00", '%Y-%m-%d %H:%M:%S')

s3 = Interval(s1, s2)

print( datetime.datetime.now() in s3)

二、闭区间、半天半闭区间

正常情况下定义的,是一个开区间,即,包含边界。我们也可以定义闭区间和半开半闭区间。

from intervalimport Interval

#默认为开区间

zoom_o2_5=Interval(2,5)

print(zoom_o2_5)

print(2 in zoom_o2_5)   #返回 True

print(5 in zoom_o2_5) #返回 True

print("--------------")

#半开半闭区间

zoom_o2_5 = Interval(2, 5, lower_closed=False)

print(zoom_o2_5)

print(2 in zoom_o2_5)  #返回  False

print(5 in zoom_o2_5) #返回 True

print("--------------")

#闭区间

zoom_o2_5 = Interval(2, 5, closed=False)

print(zoom_o2_5)

print(2 in zoom_o2_5) #返回  False

print(5 in zoom_o2_5) #返回  False

三、判断两个区间是否重复

a=Interval(1,5)

b=Interval(4,10)

c=Interval(9,33)

print(a.overlaps(b))   #返回 True

print(a.overlaps(c))  # 返回False

四、合并两个有交集的区间

对于无交集的区间是无法合并的。

a=Interval(1,5)

b=Interval(4,10)

print(a.join(b))

返回[1..10]

五、判断两个区间是否不重叠的毗邻

a=Interval(1,5)

print(a)

b=Interval(5,10, lower_closed=False)

print(b)

print(a.adjacent_to(b))

返回True

六、构造求交集函数:

def chongdie(a,b):

x=[]

x.append(a.upper_bound)

x.append(b.lower_bound)

x.append(a.lower_bound)

x.append(b.upper_bound)

x.sort()

return Interval(x[1],x[2])

你可能感兴趣的:(区间库interval的使用方法)