python的二維陣列操作

2021-06-19 23:14:29 字數 2075 閱讀 4383

需要在程式中使用二維陣列,網上找到一種這樣的用法:

1

2

3

4

5

6

#建立乙個寬度為3,高度為4的陣列

#[[0,0,0],

# [0,0,0],

# [0,0,0],

# [0,0,0]]

mylist=[[0]*3]*4

但是當操作mylist[0][1] = 1時,發現整個第二列都被賦值,變成

[[0,1,0],

[0,1,0],

[0,1,0],

[0,1,0]]

為什麼...一時搞不懂,後面翻閱the python standard library 找到答案

list * n—>n shallow copies of list concatenated, n個list的淺拷貝的連線例:1

2

3

4

5

6

>>> lists=*3

>>> lists

[, , ]

>>> lists[03)

>>> lists

[[3], [3], [3]]

是乙個含有乙個空列表元素的列表,所以*3表示3個指向這個空列表元素的引用,修改任何

乙個元素都會改變整個列表:

所以需要用另外一種方式進行建立多維陣列,以免淺拷貝: 1

2

3

4

5

6

>>> lists=[foriinrange(3)]

>>> lists[03)

>>> lists[15)

>>> lists[27)

>>> lists

[[3], [5], [7]]

之前的二維陣列建立方式為: 1

mylist=[([0]*3)foriinrange(4)]

python二維陣列操作

n 3m 3dp 0 n mdp 0 1 1print dp output 0,1,0 0,1,0 0,1,0 上面這段 是想修改二維陣列第1行第2列的數,可是居然三列都改了 看了woshare的部落格後,豁然開朗了 matrix array 3 也就是說matrix array 3操作中,只是建立...

Python的二維陣列操作

最近刷題碰到需要用二維陣列做的題目,所以就遇到了這樣的坑。n 3 m 3 dp 0 n m dp 0 1 1 print dp output 0,1,0 0,1,0 0,1,0 上面這段 是想修改二維陣列第1行第2列的數,可是居然三列都改了 看了woshare的部落格後,豁然開朗了 matrix a...

Python 二維陣列遍歷操作

一 遍歷陣列 操作value 1.使用二維列表遍歷二維陣列 python 建立list二維列表 lists for i in range 3 建立的是多行三列的二維列表 for i in range 3 for i in range 5 for i in range 7 print lists is...