值使用python中的append()覆盖前一个值

时间:2017-10-26 03:12:36

标签: python

我正在尝试使用append函数创建一个嵌套列表,但最后一个值将恢复过去的值,任何人都可以告诉我原因,以及如何正确地执行它。 感谢

result = 1
for num in range(1, 6): 
    result *= num 
    print(result) 
print(result)

输出显示:

  

[[4,0,0],[4,0,0],[4,0,0],[4,0,0]]

但我想要的输出是

  

[[1,0,0],[2,0,0],[3,0,0],[4,0,0]]

2 个答案:

答案 0 :(得分:1)

您的结果列表是[temp, temp, temp, temp]。如果您希望对象不同,则每次都必须创建一个新的子列表。使用列表理解的一种简单方法是

d = [[i, 0, 0] for i in range(1, 5)]

答案 1 :(得分:0)

试试这个:

d= []
temp = [0,0,0]
for i in range(4):
   tmp = [t for t in temp]
   tmp[0] = i+1
   d.append(tmp)