看板 Python 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Python/M.1454640899.A.C68.html
justinj: 測試結果[[1]]*3,跟一個一個加後..操作結果不一樣.. 02/05 11:06
alibuda174: list_test = [[None] * 2 for i in range(3)] 02/05 11:17
感謝大神!
tiefblau: 你用乘的 所以都是同一個list 02/05 11:51
原來如此! 長知識了!
linux5566: 如果你陣列都是數值型態 建議你用 ndarrary 02/06 10:04
我的是有字串 也有數字 感謝您的建議!
fischcheng: list用來算數字不好用 02/07 02:00
那請問用什麼來算數字比較好呢? 是樓上那位大神說的ndarray嗎?? ※ 編輯: peace9527 (111.83.57.249), 02/07/2016 14:24:18
yogi: numpy array? 02/08 03:16
fischcheng: numpy array or matrix 02/10 03:31