首页 > 解决方案 > 找到 x 中大于 0.999 的第一个值的索引

问题描述

我对这个问题感到困惑,我该如何解决这个问题?,我在下面尝试这样的事情,没有索引如何将它们组合在一起?谢谢

Q.尝试使用 for 循环和 break 查找 x 中大于 0.999 的第一个值的索引。

提示:尝试迭代 range(len(x))。

for x in range(len(x)):
    if x > 0.999:
        break

print("The answer is", x)```

标签: pythonindexing

解决方案


实现这一点的更好方法是使用next()enumerate()使用生成器表达式

>>> x = [1, 3, 1.5, 7, 13, 9.2, 19]
>>> num = 2.7

>>> next(i for i, e in enumerate(x) if e > num)
1

enumerate()在迭代列表时返回索引和元素。因为是大于3的第一个值,所以上面的代码返回的索引是。x2.731

如果您必须使用range(len(x)),那么您可以将上述逻辑(尽管完全没有必要)更新为:

>>> next(i for i in range(len(x)) if x[i] > num)
1

您的代码的问题是,在迭代列表时,您正在检查返回的值range()以进行比较0.999。相反,您需要将其用作索引并与x列表的相应值进行比较。此外,您x在循环中迭代时使用临时变量for,这与保存列表的变量相同。您可以将代码修复为:

for i in range(len(x)):
    if x[i] > 0.999:
        break

推荐阅读