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

看板Python作者 (長知識 靠黑特)時間17年前 (2007/06/29 18:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串6/8 (看更多)
: ==== : for x in addr: : a[x]=children : a[x].append(h) : print a : ===== : 而我只是將他迴圈部份取出.. : 也就是我只做 : a[1]=children : a[1].append("!") : 他的結果是 : {1: [5, 6, 7, 8, '!', '!', '!', '!'], : 2: [5, 6, 7, 8, '!', '!', '!', '!'], : 3: [5, 6, 7, 8, '!', '!', '!', '!'], : 4: [5, 6, 7, 8, '!', '!', '!', '!'] } : 但我的結果是 : {1: [5, 6, 7, 8, '!']} : 但是結果卻不會跟他一樣得到四個"!"..... 因為你只 append 了一次 : 其實我的點就卡在這......這兩個到底是差別在那?? : 這個for迴圈不只是重覆我的動作做一樣的事嗎?? : 煩請解答一下........ a[x] 只是「指向」children,而不是複製一份到 a[x] for x in addr: a[x]=children a[x].append(h) print children [5, 6, 7, 8, '!'] [5, 6, 7, 8, '!', '!'] [5, 6, 7, 8, '!', '!', '!'] [5, 6, 7, 8, '!', '!', '!', '!'] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.229.171.77 ※ 編輯: elic 來自: 61.229.171.77 (06/29 18:46)

06/29 18:56, , 1F
感謝感謝!!!這樣我懂了!!!!!
06/29 18:56, 1F
※ 編輯: elic 來自: 61.229.171.77 (06/29 19:00)
文章代碼(AID): #16XEBWL6 (Python)
文章代碼(AID): #16XEBWL6 (Python)