首页 > 解决方案 > 如何编写枚举循环

问题描述

我想知道是否可以运行枚举循环,如下所示

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

还是我们必须这样写

for i in enumerate(x_vals)

标签: pythonscipyenumerate

解决方案


希望这可以澄清 enumerate 的确切作用:

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

它只是将您的列表变成一对列表,其中您的每个元素都与索引连接,即a0、1bc2。

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

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

for i, x in enumerate(xs)

你仍然可以使用:

for i in enumerate(xs)

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


推荐阅读