Python列表追加

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?

zen*_*poy 7

假设原文有拼写错误并且f1fi真的(或副verca):

fi是指向对象的指针,因此当fi += x您实际更改指向的对象的值时,您将继续追加相同的指针fi.希望这很清楚.

要解决此问题,您可以fi = fi + x改为.


Abg*_*gan 6

我想你的意思是这样的:

   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都会更新。