我有2个要重叠的范围。然后在第二步中从第一范围中删除该重叠部分。
当前,这些范围保存在一个列表中,该列表的格式为(开始值,结束值)。
因此,范围1 为:
(5230,7585)
范围2 为:
(6752,6988)
这是最好的解决方案吗?创建这样的变量,在其中我像这样调用range函数,并比较其他地方描述的变量 (How to find range overlap in python?)
x = range(5230,7585)
y = range(6752,6988)
xs = set(x)
xs.intersection(y)
实际上,我在这两种类型的范围中都输入了> 30.000。我有兴趣从列表2(或范围2)中找到与列表1(范围1)重叠的范围。然后,将列表2与列表1的交集从列表1中删除。这样列表1看起来像这样
List1 = [...,[5230,6752], [6988,7585], ...]
我尝试使用许多for循环和if语句来执行此操作,但是很快就变得非常混乱和不清楚。我可以到目前为止发布我的代码,但是我不确定这是否会有所帮助。 是否有一个库或内置函数可以更好地实现此任务(比通过for-if语句手动完成)。删除交集的最Python方式是什么。
会吗?
xintrm = xs.difference(y)
最好的问候,
修改1: 谢谢@主持人。我在将其他线程中建议的解决方案转移到我的情况时遇到了麻烦。由于我没有一个要查找间隔的范围,而是我有多个范围来查找截距