今天寫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也就是說matrix = [array] * 3操作中,只是建立3個指向array的引用,所以一旦array改變,matrix中3個list也會隨之改變。copied. this often haunts new python programmers; consider:
建議使用列表生成式來構造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...