看板 Python 關於我們 聯絡資訊
我是自學 所以有些 可能很簡單的東西 想要問一下 我建立一個列表 裡面的元素都是空列表 如果我想對列表內 某個元素(列表) 增加元素 該怎麼做比較好 我的作法 a = [[]] * 3 (a會變成 [[],[],[]]有三個空列表的列表) 我的想法是 如果要讓第一個列表增加元素 a[0].append("元素") 但實作時的結果卻是a列表中的每個元素列表都會增加元素 變成 a => [['元素'],['元素'],['元素']] 我想知道正確的作法 以及我的作法 為何錯誤 感謝各位 大神 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.215.112 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1634095311.A.E6A.html
lycantrope: [[]]*3內的三個list都是同一個list 10/13 12:03
lycantrope: 創建時可以a = [[] for _ in range(3)] 10/13 12:05
cuteSquirrel: http://shorturl.at/hltE2 10/13 12:06
cuteSquirrel: 透過單步執行的動畫觀察兩者的不同之處 10/13 12:06
cuteSquirrel: 善用loop + list comprehension 建立多維陣列 10/13 12:08
喔喔 謝謝 我搞懂了 是一次 土法煉鋼 一個一個列表做 就正常了 原來 直接 * 3 有這種弊端 感謝各位! ※ 編輯: dodo52woman (114.24.215.112 臺灣), 10/13/2021 12:29:13
dodo52woman: for in range 感謝 教學 10/13 12:29
Jeffrey11061: 建議用numpy 10/22 19:08
roccqqck: 不是處理大量data 沒事別用numpy 10/28 08:58
roccqqck: 有C的python套件 快歸快 都該慎用 10/28 08:59
lycantrope: CPython,都有C的套件lol 10/28 22:04