Skip to main content
 首页 » 编程设计

python之python中二维数组的初始化

2025年05月04日21Free-Thinker

昨天问了一个关于初始化二维数组的问题,这是链接: How to implement this C++ source in python?

回答有问题, friend 提了个办法:

G = [[0]*11]*11 

但是这样,当我改变 G[0][0]至 2 , 所有 G[i][0](0<=i<11)都会变成2 ,但我不知道为什么?

补充:

我是这样想的: 0或其他号码是 immutable ,所以我们改变其中一个,其他的不会改变。 但是列表 [0, 0 ,0 ,.....] 是 mutable ,所以当我们 [0, 0, ...] * 11 时,所有 [0, 0, ...] 列表将相同,如 is功能为真。我说得对吗?

请您参考如下方法:

因为您对同一个列表有 11 个引用。

G = [[0] * 11 for x in range(11)]