作者peace9527 (謝謝你9527)
看板Python
標題[問題] python的二維list用法...
時間Fri Feb 5 10:54:57 2016
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那樣控制二維陣列呢?
感謝各位大神
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.233.83.112
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1454640899.A.C68.html
1F:→ justinj: 測試結果[[1]]*3,跟一個一個加後..操作結果不一樣.. 02/05 11:06
2F:→ alibuda174: list_test = [[None] * 2 for i in range(3)] 02/05 11:17
感謝大神!
3F:推 tiefblau: 你用乘的 所以都是同一個list 02/05 11:51
原來如此! 長知識了!
4F:→ linux5566: 如果你陣列都是數值型態 建議你用 ndarrary 02/06 10:04
我的是有字串 也有數字 感謝您的建議!
5F:推 fischcheng: list用來算數字不好用 02/07 02:00
那請問用什麼來算數字比較好呢?
是樓上那位大神說的ndarray嗎??
※ 編輯: peace9527 (111.83.57.249), 02/07/2016 14:24:18
6F:→ yogi: numpy array? 02/08 03:16
7F:推 fischcheng: numpy array or matrix 02/10 03:31