假设我有一个包含多个间隔作为字符串的列表。
aList = ['(-1, 0.0]', '(0.0, 1]', '(1, 2]', '(2, 3]']
现在,我要检查2.5是否在这些范围内,如果是,请返回该范围。
for i in aList:
if 2.5 in i:
return i
可以像这样进行线性搜索:
def makeHalfOpenRange(value):
inner = value[1:-1]
return [float(v) for v in inner.split(',')]
aList = ['(-1, 0.0]', '(0.0, 1]', '(1, 2]', '(2, 3]']
target = 2.5
def findTargetRange(target, aList):
for i in aList:
lower, upper = makeHalfOpenRange(i)
if lower < target <= upper:
return i
print(findTargetRange(target, aList))
输出:
(2, 3]