假设我有一个范围(部分)和一个要排除的范围的附加列表,用元组(start,end)表示:
section=(1, 100) #Range from 1 to 100
toexclude=[(10,15),(40,50),(80,83)] #3 sub-ranges
我在寻找一种高效的算法,从这两个输入中返回一个新的范围列表,例如:
^{pr2}$这是主范围,不包括第二个范围列表。在
谢谢!在
编辑:
实际上,deceze关于使用intervaltree的建议似乎很有趣。只有几行:
from intervaltree import Interval, IntervalTree
t=IntervalTree()
t[1:100]="main"
t.chop(10,15)
t.chop(40,50)
t.chop(80,83)
t
IntervalTree([Interval(1, 10, 'main'), Interval(15, 40, 'main'), Interval(50, 80, 'main'), Interval(83, 100, 'main')])
间隔显然被认为是封闭的,但这是一个小问题。在
有人这么想?在
编辑:根据pacoh.comment添加
^{pr2}$if
子句进行更正相关问题 更多 >
编程相关推荐