python - 找到 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)```
解决方案
实现这一点的更好方法是使用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
的第一个值,所以上面的代码返回的索引是。x
2.7
3
1
如果您必须使用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
推荐阅读
- makefile - Makefile中@符号的含义?(不是回声抑制也不是自动变量)
- swift - 核心数据插入
- anaconda - 为什么安装anaconda后无法运行?
- java - 对按保持排序的值排序的数组列表进行排序
- python - 向下滚动按钮更改 url django
- python - 使用 Selenium 将多个 URL 下载为 PDF
- python - Apache Spark ALS 算法
- java - 如何在java中的arraylist中添加异常
- python - Tkinter get() 不返回值
- javascript - 为什么我的 JavaScript 无法获取导航对象高度