通过乘法创建列表时,列表在python中是通过引用传递的?

时间:2018-11-27 10:14:41

标签: python list reference

我只是在玩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

0 个答案:

没有答案