我想init一個mxn的2D list,然後每個element又是一個空的list 我這樣寫(假設m=n=3) a = [[[]]*3 for _ in range(3)] print(a) a[0][0].append(1) print(a) 然後 [[[], [], []], [[], [], []], [[], [], []]] [[[1], [1], [1]], [[], [], []], [[], [], []]] ??? 我想要的是 [[[1], [], []], [[], [], []], [[], [], []]] 我哪裡寫錯了嗎== 聖我不會py了 加入不了py邦 -- ※ 發信站: 批踢踢實業坊(ptt-website.tw), 來自: 114.137.230.241 (臺灣) ※ 文章網址: https://ptt-website.tw/Marginalman/M.1715873087.A.BF4
szymwf: 壓類壓類 05/16 23:27
Smallsh: 因為你寫[[]]*3阿 05/16 23:27
CP3isgood: a = [[[] for _ in range(n)] for _ in range(m)] 05/16 23:27
DJYOSHITAKA: 太難了吧 05/16 23:28
Smallsh: 然後為啥你要2D的list of lists 寫comprehension 05/16 23:29
FireStation: 包養真心珍惜友誼情感。 05/16 23:29
ZooseWu: 結果是你存三次相同的物件,但我不知道為什麼 05/16 23:29
ZooseWu: 所以你改那個物件就感覺結果被複製三次 05/16 23:29
Smallsh: 喔沒事 看到了 05/16 23:29
DJYOSHITAKA: 好吧 我誤會*的意思了 05/16 23:29
wu10200512: 爛py不如c++ 05/16 23:33
Thobel: 包養網認識來自世界各地的朋友。 05/16 23:33