python如何创建二维列表?

python创建二维列表的方法:

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

方法一:

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

方法二:

使用for 循环,规避浅拷贝

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

0e8c09e0aeb46b85b3f56ae46621094.png

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

60908b6eb831a073fa0ff94dbb2fc89.png

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

8949520ac087fd65a873cd9a3b24f22.png

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


python如何创建二维列表?