この質問は、ネストされた整数間隔の間隔の比較についてです。Pythonでネストされた整数間隔の評価
簡略化のために、私がの目標範囲と呼ぶ3つの整数の範囲を仮定します。これらの目標範囲は決して重ならないが、異なる長さであってもよい。
> target1 = range(1,10000)
> target2 = range(10001,20000)
> target3 = range(20001,25000)
はまた常に目標範囲のいずれかよりも小さい長さを有していることを、私は試験範囲を呼び出す別の範囲を想定するが、これは、隣接する目標範囲に交差してもよいです。
> test1 = range(900,5000) # entirely in target1
> test2 = range(9900,10500) # mostly in target2, but crosses into target1
ターゲットが該当テスト範囲の範囲を特定できますPythonの機能はありますか?試験範囲が隣接する目標範囲と交差する場合、試験範囲の最も大きな割合を占めるその目標範囲のみが与えられる。
> sought_function(test1, [target1, target2, target3])
# 1
> sought_function(test2, [target1, target2, target3])
# 2
EDIT 1:
標準のPython関数が存在しない場合には、ネストされた整数間隔のインターバル比較のために、あなたはどのようなコードを使うのでしょうか?以下は、確かに改善されるのnested_in_whichという名前の関数のための、素早く厄介なPythonコードです。
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
:ここ
はそれをしないいくつかの大まかなコードです。 – TigerhawkT3
@ TigerhawkT3十分に公正。必要なPythonコードを書くときに時間を節約するのに役立つ整数範囲を比較するライブラリ関数をいくつかお勧めしますか? –