numpy を使用できる場合:
import numpy as np
data = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
max_b = .75
min_b = .25
wh = np.where((data < max_b)*(data > min_b))[0]
left, right = wh[0], wh[-1] + 1
または単に(dougalに感謝):
left, right = np.searchsorted(data, [min_b, max_b])
できない場合:
import bisect
data = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
max_b = .75
min_b = .25
left = bisect.bisect_left(data, min_b)
right = bisect.bisect_right(data, max_b)
data[right]セットに参加するか、セットを提供するかに応じて、右側にプラスまたはマイナス 1 を付けdata[left:right]ます。