我使用python创建了此功能
import numpy as np
p1=1/2
def qud(x,p):
x_sqr = x**2
x_qud = x**3
pn=x_sqr*p
return x_sqr ,x_qud,pn
我需要多次迭代此函数,方法是在上一次迭代中提供 pn 的值。
我没有这样的for循环尝试过
第一次迭代:sqr1, qud1 ,pnew = qud(2,p1)
第二次迭代:sqr2, qud2 ,pnew1 = qud(2,pnew)
其中我使用了从第一次迭代获得的值pnew
。
第三次迭代:sqr3, qud3 ,pnew2 = qud(2,pnew1)
,依此类推。
现在我想修改我的代码,以便在给出迭代次数时使用for循环存储值。但是我的代码没有用。
我的代码如下,
i=4
sqr = np.zeros(i)
qud = np.zeros(i)
p1 = np.zeros(i)
sqr[0],qud[0],p1[0] = qud(2,p1)
for j in range (1,3) :
sqr[j],qud[j],p1[j] = qud(2,p1[j-1])
任何人都可以提出任何建议以使其可行吗?
谢谢
答案 0 :(得分:3)
执行此操作的pythonic方法是创建一个生成器。生成器将保持状态,您可以调用int
或使用许多python itertools,映射,过滤器等中的任何一种。这是获取前四个值的一种方法:
next()
只要您不断对其进行迭代,这将保持价值。