我需要在我的代码块中实现递归公式
bayesian_prices = []
for i in range(10):
q = dayqvalue(i, grid, fullData)
w = compute_dayweights(q)
option_data, index_prices, initial_date = get_samedated_opt(fullData, i, 1)
callput, tmt, ex, mkt = orderdata(option_data)
baypr = compute_bayesian_prices(w, grid, callput, tmt, ex, index_prices)
bayesian_prices.append(baypr)
我需要做的是关于“q”的计算。每次我需要计算q作为旧值和从函数“dayqvalue”获得的新值的总和。换句话说,当i = 0时,计算第一q值列表。然后在i = 1的情况下,我应该有一个列表,它是在0处计算的q和在1处计算的q的总和,依此类推。 for循环最后一次运行时,我应该有一个q列表,它是所有先前列表加上新列表的总和。有没有一种简单的方法来实现它?列表q包含大约一千个元素。
修改
q
是1000个元素的列表。每次我都应该通过条目添加一个新的1000个元素列表到前一个。例如,假设在q
和i=0
时计算i=1
。我会在前两个条目中获得newq = [q_0[0] + q_1[0] , q_0[1] + q_1[1]]
。列表newq
应与q_0
和q_1
的长度相同。它应该包含按条目输入的值的总和。
答案 0 :(得分:0)
将q
初始化为1000 0的列表。然后,每次循环时,将函数返回的新q
与现有q
合并。
bayesian_prices = []
q = [0]*1000
for i in range(10):
newq = dayqvalue(i, grid, fullData)
q = [sum(x) for x in zip(q, newq)]
w = compute_dayweights(q)
option_data, index_prices, initial_date = get_samedated_opt(fullData, i, 1)
callput, tmt, ex, mkt = orderdata(option_data)
baypr = compute_bayesian_prices(w, grid, callput, tmt, ex, index_prices)
bayesian_prices.append(baypr)
有关添加两个列表的其他方法,请参阅Element-wise addition of 2 lists?。