Re: [問題] 請教一個一樣是個很蠢的問題
※ 引述《chy1013m1 (alex.c)》之銘言:
: 他說不是複製因為 assignment ('=') 在 python 裡面是一個 binding, name alias, 想成項 C 的 pointer那樣就行了,
: 你在assign的那個list object視同一個 object, 要是你 addr = [1,2,3,4,5] 他就會有五個 '!'
不好意思...到這邊其實我還是不太懂......我沒有學過C....XD
真是對不起....(我會更努力的...orz....)
: dd[D※ 引述《abliou (Art of Life)》之銘言:
: : ........... : 4: [5, 6, 7, 8, '!', '!', '!', '!'] }
: : 不好意思...這邊想請問h大...
: : 因為我用同一份程式碼...
: : a={}
: : child=[5,6,7,8]
: : a[1]=child
: : a[1].append("!")
: : ========結果==============
: : a{1: [5, 6, 7, 8, '!']}
其實我有問題的就是這邊....因為原文的程式碼是這樣...
====
for x in addr:
a[x]=children
a[x].append(h)
print a
=====
而我只是將他迴圈部份取出..
也就是我只做
a[1]=child
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, '!']}
但是結果卻不會跟他一樣得到四個"!".....
其實我的點就卡在這......這兩個到底是差別在那??
這個for迴圈不只是重覆我的動作做一樣的事嗎??
煩請解答一下........
: : 為什麼一樣是用append的方法...但是卻有不一樣的結果??
: : 可以勞煩解答一下嗎?
: : 另外這邊是說a[x]不是複製...這又是什麼意思??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.124.50.103
※ 編輯: abliou 來自: 140.124.50.103 (06/29 18:35)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 5 之 8 篇):
Python 近期熱門文章
PTT數位生活區 即時熱門文章