[問題] 關於巢狀list的初始化

看板Python作者 (嚕啦嚕啦勒)時間8年前 (2017/03/21 18:54), 8年前編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
以下兩種初始化,出來的結果是相同的 A = [[0]*8, [0]*8, [0]*8, [0]*8, [0]*8, [0]*8, [0]*8, [0]*8] A = [[0]*8]*8 但為何使用 for i in range(0,8): for j in range(0,8): A[i][j] = chr(i+j) 所得到的結果會不同? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.105.42.157 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1490093643.A.BFB.html

03/21 19:04, , 1F
這兩種其實初始化結果並不一樣喔...
03/21 19:04, 1F

03/21 19:08, , 2F
第二種方法裡面的8個list都是同個obj
03/21 19:08, 2F
那還有辦法簡化第一種表達式嗎? ※ 編輯: doun (27.105.42.157), 03/21/2017 19:21:59

03/21 19:21, , 3F
可以參考一下: https://goo.gl/uPkW1a
03/21 19:21, 3F

03/21 19:25, , 4F
A = [[0]*8 for i in range(8)] 是一個可行的方法
03/21 19:25, 4F
哦哦哦 感謝大家的解惑 ※ 編輯: doun (219.85.224.133), 03/22/2017 06:35:41
文章代碼(AID): #1OqGPBlx (Python)
文章代碼(AID): #1OqGPBlx (Python)