python创建二维数组的坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36372879/article/details/82390326

        array = ['!'] * 10
        rows = [array] * numRows #二维数组

这里写图片描述
但是你会发现更改一个值之后,所有行都被修改!!!
相当于创建了numRows个相同的指向array的指针,每次修改其中一个指针之后,所有的指针都会被修改!!!!!


所以需要用另外一种方式进行创建多维数组,以免浅拷贝:

>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]

创建二维数组

myList = [([0] * 3) for i in range(4)]

修改代码

rows = [(['!'] * 1000) for i in range (numRows)]

猜你喜欢

转载自blog.csdn.net/weixin_36372879/article/details/82390326