python中定義二維陣列時遇到的坑!!!

2021-09-18 01:17:41 字數 635 閱讀 4734

array = [0, 0, 0]

matrix = [array] * 3

print matrix

[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

咋一看這段**應該建立乙個二維陣列了

測試一下

matrix[0][1] = 1

print matrix

[[0, 1, 0], [0, 1, 0], [0, 1, 0]][/py]

照理matrix[0][1]修改的應該只是二維陣列中的乙個元素,但是測試結果表明,修改的是每個list的第二個元素。

原因:::matrix = [array] * 3操作中,只是建立3個指向array的引用,所以一旦array改變,matrix中3個list也會隨之改變。

那如何才能在python中建立乙個二維陣列呢?

例如建立乙個3*3的陣列

方法1 直接定義

matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

方法2 間接定義

matrix = [[0 for i in range(3)] for i in range(3)]

python中定義二維陣列

原文 今天在寫力扣5.最長回文子串,二維陣列這麼定義的 dp false size size然後後面發現,更改資料的時候會一列一起被修改 即原文所說的第一種情況 正確的方法是 dp false for in range size for in range size 原文第三種 原文第二種方法 c p...

在python中定義二維陣列

在python中定義二維陣列 一次偶然的機會,發現python中list非常有意思。先看一段 py array 0,0,0 matrix array 3 print matrix 0,0,0,0,0,0,0,0,0 py 這段 其實沒有新建乙個二維陣列 再看一段 py array 0,0,0 mat...

delphi定義二維陣列

procedure tform1.button1click sender tobject vara array of array of string i,j integer begin setlength a,10 for i low a to high a do begin setlength a...