作者elic (长知识 靠黑特)
看板Python
标题Re: [问题] 请教一个一样是个很蠢的问题
时间Fri Jun 29 18:45:51 2007
: ====
: 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)
1F:推 abliou:感谢感谢!!!这样我懂了!!!!! 06/29 18:56
※ 编辑: elic 来自: 61.229.171.77 (06/29 19:00)