我昨天问了一个关于初始化二维数组的问题,这是链接: How to implement this C++ source in python?
回答有问题,有朋友提了一个办法:
G = [[0]*11]*11
但是这样,当我将 to 更改为G[0][0]
时2
,所有的G[i][0](0<=i<11)
都会更改为2
,但我不知道为什么?
补充:
这就是我的想法:0
或其他数字是immutable
,所以我们改变其中一个,其他的不会改变。但是列表 [0, 0 ,0 ,.....] 是mutable
,所以当我们 [0, 0, ...] * 11 时,所有的 [0, 0, ...] 列表都是一样的,因为is
函数为真。我对吗?