python创建二维列表的两种方法

方法一:

使用numpy-zeros((10,10)),生成给定长度的二维列表。

方法二:

使用for 循环,规避浅拷贝

python创建二维列表可以通过循环的方式来创建,代码如下:

python创建二维列表的两种方法_第1张图片

如此,就创建好了一个缺省值为0的10*10的二维列表,实现相同列表的方法还有b=[[0]*10]*10,而且判断 a==b 时,返回值为 True。但是通过此种方法建立的列表存在一定的问题,当我们令b[0][1]=1时,我们的初衷是仅仅改变列表中一项的值,但是实际却不是:

python创建二维列表的两种方法_第2张图片

我们发现整个列表的第二列均发生了改变,这是因为[[]]*10表示的是表示10个指向这个空列表元素的引用,是一种浅拷贝,因此修改任何一个元素都会改变整个列表,所以我们需要采取第三种方式来创建二维列表:

python创建二维列表的两种方法_第3张图片

当我们令c[0][1]=1时,仅仅改变列表中一项的值,符合我们创建二维列表的要求

你可能感兴趣的:(python创建二维列表的两种方法)