Python的二維陣列操作

2022-05-24 12:03:11 字數 1321 閱讀 6530

最近刷題碰到需要用二維陣列做的題目,所以就遇到了這樣的坑。

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 = [array] * 3

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

那如何才能在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)]

修改一下**,舒服了

n = 3

m = 3

dp = [[0 for i in range(n)] for j in range(m)]

dp[0][1] = 1

print dp

# output:

# [[0, 1, 0], [0, 0, 0], [0, 0, 0]]

n = 3

m = 3

like = [[1, 2, 3], [4, 5, 6], [0, 0, 0]]

res = [0 for i in range(n)]

for i in range(n):

for j in range(m):

res[i] += like[j][i] # 這裡的i是列號

print res

# [5, 7, 9]

n = 3

m = 3

like = [[1, 2, 3], [4, 5, 6], [0, 0, 0]]

res = [0 for i in range(n)]

for i in range(n):

for j in range(m):

res[i] += like[i][j] # 這裡的i是行號

print res

# [6, 15, 0]

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的二維陣列操作

需要在程式中使用二維陣列,網上找到一種這樣的用法 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 為...

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