var=42
l = [1,2,3,7,3,5,21,8,44,16,13]
if l.index(5) < l.index(var-20):
print ("True")
else:
print ("False")
我想选择一个值(var)并测试以查看列表中的第一个,var +(例如20)或var-(也可能是20)。
我对上述代码的问题是,如果列表中没有值,那么它会告诉我一个错误。
答案 0 :(得分:2)
显然,您需要一种不同的方法来查找数字。相反,让我们尝试计算一次您需要查找的数字。让我们假设跨度的数字不同,例如20高(你使用的是)和17低(为了区别)。
var = 42
target = [1,2,3,7,3,5,21,8,44,16,13]
lo_diff = 20
hi_diff = 17
lo_num = var - lo_diff
hi_num = var + hi_diff
# Check to see which of the two is in the list:
lo_index = target.index(lo_num) if lo_num in target else -1
hi_index = target.index(hi_num) if hi_num in target else -1
这为您找到每个找到的值的准确索引,如果找不到则为-1。我希望你能从这里完成?
使用说明
在布尔值中学习相信。您的输出块应该是单个语句:
if l.index(5) < l.index(var-20):
print ("True")
else:
print ("False")
......减少到......
print( l.index(5) < l.index(var-20) )
只需打印布尔表达式的值。