我只是在玩python,请使用以下代码:
a=[[-1,-1,-1],[-1,-1,-1],[-1,-1,-1]]
b=[[-1]*3]*3
print(a)
print(b)
a[0][0]=6
b[0][0]=6
print(a)
print(b)
正如我期望的那样,两个列表的结尾处大多数都相同,但实际上并没有,看起来[[-1]*3]*3
是通过引用创建列表的,您可以看到列表中的所有第一个值是改变
在控制台上:
[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]]
[[-1, -1, -1], [-1, -1, -1], [-1, -1, -1]]
[[6, -1, -1], [-1, -1, -1], [-1, -1, -1]]
[[6, -1, -1], [6, -1, -1], [6, -1, -1]]
是一个错误还是仅仅是正常的行为? 我正在使用python 3.7