Python陣列構造的坑

2021-09-26 11:57:59 字數 1028 閱讀 9185

今天寫python**的時候遇到了乙個大坑

問題是這樣的,我需要建立乙個二維陣列,如下:

m = n =

3test =[[

0]* m]

* nprint

("test ="

, test)

輸出結果如下:

test =[[

0,0,

0],[

0,0,

0],[

0,0,

0]]

是不是看起來沒有一點問題?

一開始我也是這麼覺得的,以為是我其他地方用錯了什麼函式,結果這麼一試:

m = n =

3test =[[

0]* m]

* nprint

("test ="

, test)

test[0]

[0]=

233print

("test ="

, test)

輸出結果如下:

test =[[

0,0,

0],[

0,0,

0],[

0,0,

0]]test =[[

233,0,

0],[

233,0,

0],[

233,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也會隨之改變。

建議使用列表生成式來構造list

c 動態陣列構造及應用

檔名稱 arrayclass.h 功能 自定義陣列型別標頭檔案 用於動態陣列應用,char型別指標陣列 by adengou 2011.8.13 檔案頭 ifndef array class define array class include include ifndef null const i...

基於XML字尾陣列構造演算法

基於 xml字尾陣列構造演算法 1 引言 xml extensible markup language 是由w3c開發的乙個標準,xml 1.0是全球接受的規範。xml文件是乙個既包含資料,又包含描述資料結構標記的純文字文件。任何兩個要交換xml資料的應用程式都能進行交換,與平台或程式語言無關。因此...

c08 基礎,陣列構造演算法

1.sizeof hello 6 放入常量區,編譯器不用頻繁讀取記憶體 2.sizeof 型別 只關心型別而不關心內容 int i 0 sizeof 1 i 4 編譯執行正常 3.只有有型別的指標才能通過指標值確定指標指向的內容 4.陣列的引用 int p 10 int a 10 不使用 5.voi...