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
参数为元组tux
所期望的。在测试过程中,我建议在t_x
的开头添加一个打印,以显示或以其他方式告诉您参数是什么。