作者doun (嚕啦嚕啦勒)
看板Python
標題[問題] 關於巢狀list的初始化
時間Tue Mar 21 18:53:59 2017
以下兩種初始化,出來的結果是相同的
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
→ Marsden: 這兩種其實初始化結果並不一樣喔...03/21 19:04
推 ckc1ark: 第二種方法裡面的8個list都是同個obj03/21 19:08
那還有辦法簡化第一種表達式嗎?
※ 編輯: doun (27.105.42.157), 03/21/2017 19:21:59
→ Marsden: A = [[0]*8 for i in range(8)] 是一個可行的方法03/21 19:25
哦哦哦 感謝大家的解惑
※ 編輯: doun (219.85.224.133), 03/22/2017 06:35:41