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

看板Python作者 (謝謝你9527)時間9年前發表 (2016/02/05 02:54), 9年前編輯推噓3(304)
留言7則, 6人參與, 最新討論串1/1
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

02/05 11:06, , 1F
測試結果[[1]]*3,跟一個一個加後..操作結果不一樣..
02/05 11:06, 1F

02/05 11:17, , 2F
list_test = [[None] * 2 for i in range(3)]
02/05 11:17, 2F
感謝大神!

02/05 11:51, , 3F
你用乘的 所以都是同一個list
02/05 11:51, 3F
原來如此! 長知識了!

02/06 10:04, , 4F
如果你陣列都是數值型態 建議你用 ndarrary
02/06 10:04, 4F
我的是有字串 也有數字 感謝您的建議!

02/07 02:00, , 5F
list用來算數字不好用
02/07 02:00, 5F
那請問用什麼來算數字比較好呢? 是樓上那位大神說的ndarray嗎?? ※ 編輯: peace9527 (111.83.57.249), 02/07/2016 14:24:18

02/08 03:16, , 6F
numpy array?
02/08 03:16, 6F

02/10 03:31, , 7F
numpy array or matrix
02/10 03:31, 7F
文章代碼(AID): #1Mj0y3ne (Python)