python 中的 for 循环更新列表不起作用

for loop update list in python is not working

a=[[1]]

current=a[-1]
a.pop(-1)
edge=[2,3,4,5,6,7,8,9,10]
for j in range(len(edge)-1,-1,-1):
   current.append(edge[j])
   print(current)
   a.append(current)
   current.pop(-1)   

上面的代码给了我 a=[[1],[1],...,[1]],但我认为 s=[[1,10],[1,9],.. .,[1,2]]..我认为 python 从头开始​​阅读代码,所以这些代码是正确的..你能告诉我如何获得 a=[[1,10],[1, 9],...,[1,2]]?提前致谢! (我添加了 print(current)<

只需将a.append(current)更改为a.append(current.copy()),当您将current添加到a时,将添加对象的引用并且当您弹出[=15的最后一项时=] 也更改了 a 中的项目。 另一种方式是: 解决方案 1:

   a.append(current.copy())
   current.pop(-1)

方式二:

   a.append(current)
   current = [1]

print(a)的结果:

[[1, 10], [1, 9], [1, 8], [1, 7], [1, 6], [1, 5], [1, 4], [1, 3], [1, 2]]