interval模块简介
Python自带interval模块可以定义一个连续区间,适当使用可以简化比较操作。
使用interval创建区间
#闭合区间
a = interval.Interval(0,10)
#开发区间
b = interval.Interval(0,10,closed=False)
#左开右闭
c = interval.Interval(0,10,lower_closed=False)
#左闭右开
d = interval.Interval(0,10,upper_closed=False)
print('a是闭合区间 => ',a,'\n',
'b是开区间 => ', b, '\n',
'c是左开右闭区间 => ', c, '\n',
'd是左闭右开区间 => ', d)
# a是闭合区间 = > [0..10]
# b是开区间 = > (0..10)
# c是左开右闭区间 = > (0..10]
# d是左闭右开区间 = > [0..10)
判断元素是否属于区间
if 10 in a:
print('10 在 区间a')
else:
print('10 不在 区间a')
#10 在 区间a
if b in a:
print('区间b 属于区间a')
else:
print('区间b 不属于区间a')
#区间b 不属于区间a
区间的合并
注意:区间的合计要求区间需有交集,且已列表[]的形式传入
a = interval.Interval(0,10)
e = interval.Interval(10,20)
ii = interval.IntervalSet([a,e])
print(ii)
#[0..20]
区间的关系
#包含关系
if a in b:
print('区间b 包含区间a')
else:
print('区间a 不包含于区间b')
# 区间b 不包含区间a
#不相交关系
if b.adjacent_to(e):
print('区间b与区间e不相交')
else:
print('区间b与区间e相交')
#区间b与区间e不相交
#相交关系
print(e.overlaps(a),e.overlaps(b))
#True False