[問題] 請教一個一樣是個很蠢的問題

看板Python作者 (絕體絕命自由客)時間17年前 (2007/06/29 13:19), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串1/8 (看更多)
a={} addr = [1,2,3,4] children=[5,6,7,8] h="!" for x in addr: a[x]=children a[x].append(h) print a ========================================================== 執行結果 {1: [5, 6, 7, 8, '!', '!', '!', '!'], 2: [5, 6, 7, 8, '!', '!', '!', '!'], 3: [5, 6, 7, 8, '!', '!', '!', '!'], 4: [5, 6, 7, 8, '!', '!', '!', '!'] } 請問為什麼會有[5,6,7,8]後面會有4個"!"而不是只有1個? 如果我只要1個應該怎麼改呢? 謝謝 -- A:妳是琪汀嗎? B:不...我是喜瑞兒絲。 ------------------------------------------------------------------------------- A:Are you kidding? B:No, I'm serious. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.122.92 ※ 編輯: CHRyo 來自: 140.118.122.92 (06/29 13:22)

06/29 13:34, , 1F
因為 a[x]=children 不是複製 所以 a[x].append(h) 其實是
06/29 13:34, 1F

06/29 13:34, , 2F
append 在 children
06/29 13:34, 2F

06/29 13:39, , 3F
要複製新的一份可用 a[x]=list(children)
06/29 13:39, 3F

06/29 13:52, , 4F
感謝樓上兩位
06/29 13:52, 4F
文章代碼(AID): #16X9PeFW (Python)
討論串 (同標題文章)
文章代碼(AID): #16X9PeFW (Python)