检查值在间隔列表中属于哪个间隔Python [重复]

问题描述 投票:-4回答:1

假设我有一个包含多个间隔作为字符串的列表。

aList = ['(-1, 0.0]', '(0.0, 1]', '(1, 2]', '(2, 3]']

现在,我要检查2.5是否在这些范围内,如果是,请返回该范围。

for i in aList:
   if 2.5 in i:
      return i
python list range intervals
1个回答
0
投票

可以像这样进行线性搜索:

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]
© www.soinside.com 2019 - 2024. All rights reserved.