作者abliou (Art of Life)
看板Python
标题Re: [问题] 请教一个一样是个很蠢的问题
时间Fri Jun 29 14:16:45 2007
※ 引述《CHRyo (绝体绝命自由客)》之铭言:
: 标题: [问题] 请教一个一样是个很蠢的问题
: 时间: Fri Jun 29 13:19:34 2007
:
: 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个应该怎麽改呢?
: 谢谢
:
: ※ 编辑: CHRyo 来自: 140.118.122.92 (06/29 13:22)
: 推 holio:因为 a[x]=children 不是复制 所以 a[x].append(h) 其实是 06/29 13:34
: → holio:append 在 children 06/29 13:34
不好意思...这边想请问h大...
因为我用同一份程式码...
a={}
child=[5,6,7,8]
a[1]=child
a[1].append("!")
========结果==============
a{1: [5, 6, 7, 8, '!']}
为什麽一样是用append的方法...但是却有不一样的结果??
可以劳烦解答一下吗?
另外这边是说a[x]不是复制...这又是什麽意思??
: 推 subook:要复制新的一份可用 a[x]=list(children) 06/29 13:39
: 推 CHRyo:感谢楼上两位 06/29 13:52
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.124.50.103