所以我试着对一个想法进行简单的测试。基本上我有一些我定义的函数取决于变量和参数常量。我有一系列参数值。对于第一个参数值,我有一组集成的起点和终点。对于第二个,我有一组不同的开始和结束点。由于此链接Integrating functions that return an array in Python
,我已使代码正常运行它基本上就是那种形式。
我的问题是,如果我有一个带有for循环的函数的定义,那个函数看起来像:
def F(a):
F = []
for i in len(a):
F[i] = scipy.integrate.quad(g,0,1,args = (a[i],))
return F
(其中g
是我之前在代码中定义的一些函数),然后当我实现这个函数(或插入一个a
的数组)时,所有元素都将在阵列连续运行?或者每个元素的积分是否会同时运行?
或者换句话说,在我在开头附加的链接中,当调用用for循环定义的函数时,函数中的所有计算都会连续运行(如运行索引的for循环)或同时执行所有元素都已定义?
答案 0 :(得分:0)
循环可以更好地表达为:
def F(a):
results = []
for element in a:
results.append(scipy.integrate.quad(g, 0, 1, args=(element,)))
return results
或使用列表理解的单行:
def F(a):
return [scipy.integrate.quad(g, 0, 1, args=(element,)) for element in a]
在这两种情况下,集成将在一次(连续)完成。