[問題] python的二維list用法...

作者: peace9527 (謝謝你9527)   2016-02-05 10:54:57
list_test = [[None]*2]*3
list_test[0][0] = 4
print(list_test)
output: [[4, None], [4, None], [4, None]]
我以為我的宣告是正確的...
結果的確是成功宣告二維陣列
但是要assign值 卻有點怪怪的
我只想指定 (0, 0) 那值為4
但是他卻把 (0, 0) (1, 0) (2, 0)都變成4了..
請問為什麼會這樣呢
我要怎麼操作才有辦法像C那樣控制二維陣列呢?
感謝各位大神
作者: justinj (黑旋風)   2016-02-05 11:06:00
測試結果[[1]]*3,跟一個一個加後..操作結果不一樣..
作者: alibuda174 (阿哩不達)   2016-02-05 11:17:00
list_test = [[None] * 2 for i in range(3)]
作者: tiefblau (tiefblau)   2016-02-05 11:51:00
你用乘的 所以都是同一個list
作者: linux5566 (linux56)   2016-02-06 10:04:00
如果你陣列都是數值型態 建議你用 ndarrary
作者: fischcheng (布阿送)   2016-02-07 02:00:00
list用來算數字不好用
作者: yogi (Yogi)   2016-02-08 03:16:00
numpy array?
作者: fischcheng (布阿送)   2016-02-10 03:31:00
numpy array or matrix

Links booklink

Contact Us: admin [ a t ] ucptt.com