为什么相同的赋值,结果却不同?
>>> x = [, , ]>>> x = 0
>>> x
[, , ]
>>> array = [*3]*3
>>> array
[, , ]
>>> array = 1
>>> array
[, , ]
为什么 x = 0的结果是[, , ]
而 array = 1的结果是 [, , ]? array = [*3]*3 这种方式来赋值其实乘以3的是列表的地址,
而不会新建列表对象,所以里面的3个列表其实是指向同一个列表的,
所以其中一个发生改变另外两个也就跟着变了,
你可以把 array = [*3]*3 改成 array = [*3 for i in range(3)] 你看到的是假象,array = [*3]*3这样赋值只是看起来一样,实际上他们都指向同一个地址。
页:
[1]