abc*_*bcd 3 python list append
我想在Python中存储变量的中间值.此变量在循环中更新.当我尝试使用list.append命令执行此操作时,它会使用变量的新值更新列表中的每个值.我该怎么办?
while (step < maxstep):
for i in range(100):
x = a*b*c
f1 += x
f2.append(f1)
print f2
raw_input('<<')
step += 1
Run Code Online (Sandbox Code Playgroud)
预期产出
[array([-2.03,-4.13])]
<<
[array([-2.03,-4.13]),array([-3.14,-5.34])]
Run Code Online (Sandbox Code Playgroud)
印刷输出
[array([-2.03,-4.13])]
<<
[array([-3.14,-5.34]),array([-3.14,-5.34])]
Run Code Online (Sandbox Code Playgroud)
有没有不同的方法来获得我想要的python?
假设原文有拼写错误并且f1是fi真的(或副verca):
fi是指向对象的指针,因此当fi += x您实际更改指向的对象的值时,您将继续追加相同的指针fi.希望这很清楚.
要解决此问题,您可以fi = fi + x改为.
我想你的意思是这样的:
f2 = []
f1 = 0
for i in range(100):
x = f()
f1 += x
f2.append(f1)
print f2
Run Code Online (Sandbox Code Playgroud)
请注意,如果f1是一个可变对象,则该行f1 += x不会创建新对象,而只会更改 的值f1,因此数组中出现的所有内容f2都会更新。