<p>这个问题是关于嵌套整数区间的区间比较。在</p>
<p>假设有三个整数范围,为了简单起见,我称之为<em>目标范围</em>。这些目标范围从不重叠,但长度可能不同。在</p>
<pre><code>> target1 = range(1,10000)
> target2 = range(10001,20000)
> target3 = range(20001,25000)
</code></pre>
<p>进一步假设另一个范围,我称之为<em>测试范围</em>,它的长度总是比任何一个目标范围都要短,但可能会交叉到相邻的目标范围内。在</p>
^{pr2}$
<p>有没有一个Python函数可以帮助识别哪个<em>目标范围</em>a<em>测试范围</em>属于哪个范围?如果测试范围与相邻目标范围交叉,则只应给出包含测试范围最大比例的目标范围。在</p>
<pre><code>> sought_function(test1, [target1, target2, target3])
# 1
> sought_function(test2, [target1, target2, target3])
# 2
</code></pre>
<p><strong>编辑1</strong>:</p>
<p>如果没有一个标准的Python函数来比较嵌套的整数区间,您将使用什么代码?下面是一些快速而笨拙的Python代码,该函数名为<em>nested_in_,</em>当然可以改进。在</p>
<pre><code>def nested_in_which(test, targets):
for n, t in enumerate(targets):
if test[0] in t and test[-1] in t:
return(n)
else:
if test[0] in t and n < len(targets) and test[-1] in targets[n+1]:
return(n+1) # Overlap comparison not yet implemented
</code></pre>