Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何编写枚举循环_Python_Scipy_Enumerate - Fatal编程技术网

Python 如何编写枚举循环

Python 如何编写枚举循环,python,scipy,enumerate,Python,Scipy,Enumerate,我想知道是否可以运行枚举循环,如下面所示 int_term = [scipy.quad(t_x,x0,i)[0] for i in enumerate(x_vals)] 还是我们必须这样写 for i in enumerate(x_vals) 希望这能澄清enumerate到底做了什么: 列表(枚举('abc')) [(0,'a'),(1,'b'),(2,'c')] 它只是将您的列表变成一个成对的列表,其中每个元素都与索引相连,即a与0、b与1和c与2 这并不完全正确,因为它是一个迭代器,

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

int_term = [scipy.quad(t_x,x0,i)[0] for i in enumerate(x_vals)]
还是我们必须这样写

for i in enumerate(x_vals)

希望这能澄清enumerate到底做了什么:

列表(枚举('abc')) [(0,'a'),(1,'b'),(2,'c')] 它只是将您的列表变成一个成对的列表,其中每个元素都与索引相连,即
a
与0、
b
与1和
c
与2

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

因此,在其上循环与任何其他列表相同,但通常采用以下方式:

枚举(xs)中i,x的

您仍然可以使用:

枚举中i的
(xs)

但是要知道,我将是一个具有一些int的元组,以及
xs

中的一些对象,这两种方式是完全相同的。只有一个更紧凑
enumerate
根本不是循环。它是一个iterable类型,提供来自另一个iterable的“注释”元素。您可以使用迭代原始参数时使用的任何技术对其进行迭代。请记住,
quad
要求
args
参数为元组i将是tuple,但它可能不是您的
tux
所期望的。在测试过程中,我建议在
t_x
的开头添加一个打印,以显示或以其他方式告诉您参数是什么。