本來想著簡單點,用列表乘法
m = n =
3test =[[
0]* m]
* nprint
(test)
輸出也看了一下,沒啥問題
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
m = n =
3test =[[
0]* m]
* nprint
(test)
test[0]
[0]=
2print
(test)
輸出就變得奇怪了
[[0
,0,0
],[0
,0,0
],[0
,0,0
]][[
2,0,
0],[
2,0,
0],[
2,0,
0]]
note also that the copies are shallow; nested structures are not copied. this often haunts new python programmers; consider:也就是說
matrix = [[array]] * 3
操作中,只是建立3個指向array的引用,所以一旦array改變,matrix中3個list也會隨之改變。
dp =[[
0]*(
3)for _ in
range(3
)]print
(dp)
dp[0][
0]=4
print
(dp)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]][[4, 0, 0], [0, 0, 0], [0, 0, 0]]
dp =[[
0,0,
0]]*
3print
(dp)
dp[0][
0]=4
print
(dp)
[[0, 0, 0], [0, 0, 0], [0, 0, 0]][[4, 0, 0], [4, 0, 0], [4, 0, 0]]
Python二維陣列建立
建立方法 1.直接建立 2.列表生成 3.numpy建立 遇到的問題 a 3 print a 輸出為 1,2,3 1,2,3 1,2,3 原因是建立乙個列表,然後複製上個,相當於二維陣列中,引用的是同乙個一位陣列。意思就是 a b 3只是建立了3個指向b的應用,所以一旦b改變,a中的3個列表 也會改...
Python建立二維陣列
因一次筆試中忘記如何用python建立二維陣列,遂記錄下來.成功沒有捷徑,一定要腳踏實地.沒有使用numpy模組,若想使用numpy模組建立二維陣列請移步。一 初始化乙個元素從0 n m的二維陣列 row int input column int input dp i column j for j ...
Python二維陣列的建立
如果在python中想要建立乙個二維陣列,我們該如何寫呢?a 0 3 4 b 0 3 4 是a還是b呢?當然是b了!還是先輸出看一下 a 0,0,0,0,0,0,0,0,0,0,0,0 b 0,0,0 0,0,0 0,0,0 0,0,0 不出所料,我們應該按照b 0 3 4來建立二維陣列。but!當...