我有以下代码:
a=[[0]*2]*3
print a
a[1][1]=2
print a
输出是:
[[0,0],[0,0],[0,0]]
[[0,2],[0,2],[0,2]]
为什么要更改列表的所有元素?
输出不应该是:
[[0,0],[0,2],[0,0]]
如果我只想更改其中一个元素,需要做什么?
感谢您的帮助!
请您参考如下方法:
当您执行 [0] * 2 时,会产生列表 [0, 0]。当您将其乘以 3 时,您将创建一个列表,其中包含对该列表的三个引用。你可能想这样做:
a = [[0] * 2 for _ in range(3)]
