1. 程式人生 > >python建立二維陣列的坑

python建立二維陣列的坑


        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)]