最近刷題碰到需要用二維陣列做的題目,所以就遇到了這樣的坑。
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...