Re: [問題] 請教一個一樣是個很蠢的問題
※ 引述《CHRyo (絕體絕命自由客)》之銘言:
: a={}
: addr = [1,2,3,4]
: children=[5,6,7,8]
: h="!"
: for x in addr:
: a[x]=children
這邊也就是說..a[x]會將children的ref傳到a[x]中....
也就是說其實a[1],a[2],a[3],a[4]都將會指向同一個array...
: a[x].append(h)
當這邊開始做append的方法時....其實都是對children這一個array做..
因此最後迴圈跑四次....後面就增加四個"!"....
: print a
: ==========================================================
: 執行結果
: {1: [5, 6, 7, 8, '!', '!', '!', '!'],
: 2: [5, 6, 7, 8, '!', '!', '!', '!'],
: 3: [5, 6, 7, 8, '!', '!', '!', '!'],
: 4: [5, 6, 7, 8, '!', '!', '!', '!'] }
而最後print出來後....1,2,3,4這四個keys其實都是指向同一個array...
而不是分別四個...
真是感謝各位...我懂了.....
: 請問為什麼會有[5,6,7,8]後面會有4個"!"而不是只有1個?
: 如果我只要1個應該怎麼改呢?
: 謝謝
為了要了解這些....所以我做一些實驗....
child=[1,2,3,4]
addr=[5,6,7,8]
a={}
for x in addr :
a[x]=child
a[x].append('!')
===結果========
{8: [1, 2, 3, 4, '!', '!', '!', '!'],
5: [1, 2, 3, 4, '!', '!', '!', '!'],
6: [1, 2, 3, 4, '!', '!', '!', '!'],
7: [1, 2, 3, 4, '!', '!', '!', '!']}
=====================又加了以下程式碼==============
child[2]=33
====結果=======
{8: [1, 2, 33, 4, '!', '!', '!', '!'],
5: [1, 2, 33, 4, '!', '!', '!', '!'],
6: [1, 2, 33, 4, '!', '!', '!', '!'],
7: [1, 2, 33, 4, '!', '!', '!', '!']}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.50.103
※ 編輯: abliou 來自: 140.124.50.103 (06/29 19:07)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 8 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章