我在python解释器中尝试了以下内容:
>>>
>>> a = []
>>> b = {1:'one'}
>>> a.append(b)
>>> a
[{1: 'one'}]
>>> b[1] = 'ONE'
>>> a
[{1: 'ONE'}]
>>>
这里,在将字典“b”附加到列表“a”之后,我正在更改字典“a”中与键1对应的值。不知怎的,这种变化也反映在列表中。当我将字典附加到列表中时,我不只是附加字典的值吗?看起来好像我已经将一个指向字典的指针添加到列表中,因此对字典的更改也会反映在列表中。
我不希望更改反映在列表中。我该怎么做?
感谢您的时间!
答案 0 :(得分:94)
答案 1 :(得分:17)
还有 dict
a = []
b = {1:'one'}
a.append(dict(b))
print a
b[1]='iuqsdgf'
print a
结果
[{1: 'one'}]
[{1: 'one'}]
答案 2 :(得分:1)
使用复制和深层复制