在python中定義二維陣列

2021-08-21 18:29:36 字數 938 閱讀 9135

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

matrix = [array] * 3

print matrix

## [[0, 0, 0], [0, 0, 0], [0, 0, 0]][/py]

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

測試一下

[py]

matrix[0][1] = 1

print matrix

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

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

有問題看文件,然後我找到了the python standard library

其中5.6. sequence types是這樣描述的:

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

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

方法1 直接定義

[py]matrix = [[0, 0, 0], [0, 0, 0], [0, 0, 0]][/py]

方法2 間接定義

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

附:我的測試**

參考:python的二維陣列操作

stackoverflow

在python中定義二維陣列

python中定義二維陣列

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

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...

筆記 定義二維陣列

定義二維陣列char array x y 1.只定義個一維的就可以了 char array array new char x y 訪問的時候 array i y j 表示array i j 2.定義乙個二維陣列 char array1 array1 new char x for i 0 iarray...