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]]
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]]