【问题标题】:How to check a list for greater or less than var integers如何检查列表是否大于或小于 var 整数
【发布时间】:2017-10-23 17:15:43
【问题描述】:
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)。

我在上面的代码中遇到的问题是,如果列表中不存在某个值,那么它会给我一个错误告诉我。

【问题讨论】:

  • 如果var+x 和var-x 都没有出现在列表中怎么办?
  • @DanielTJones 所以你想要一个 范围 var-x 到 var+x 内的值?

标签: python list indexing integer


【解决方案1】:

显然,您需要一种不同的方法来查找数字。相反,让我们尝试计算一次您需要找到的数字。让我们假设跨度的数字不同,例如 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) )

只需打印布尔表达式的值。

【讨论】:

  • 这太完美了,谢谢。我也记下了使用说明,现在看起来更干净了,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-22
  • 2023-01-30
  • 2021-03-24
  • 1970-01-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多