如何编写枚举循环

问题描述

我想知道是否可以像我们在下面看到的那样运行枚举循环

int_term = [scipy.quad(t_x,x0,i)[0] for i in enumerate(x_vals)]

还是我们必须这样写

for i in enumerate(x_vals)

解决方法

希望这能澄清 enumerate 的作用:

>>> list(enumerate('abc'))
[(0,'a'),(1,'b'),(2,'c')]

它只是将您的列表变成一个对的列表,其中您的每个元素都与索引相连,即 a 为 0,b 为 1,c 为 2。

这并不完全正确,因为它是一个迭代器而不是一个实际的列表——所以当你包装另一个迭代器时它会懒惰地为你提供值。

因此,循环遍历它与任何其他列表相同,但通常按以下方式完成:

for i,x in enumerate(xs)

您仍然可以使用:

for i in enumerate(xs)

但是只要知道 i 将是一个带有一些 int 的元组,以及来自 xs 的一些对象。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...