neo*_*o29 59 python dictionary list
我在python解释器中尝试了以下内容:
>>>
>>> a = []
>>> b = {1:'one'}
>>> a.append(b)
>>> a
[{1: 'one'}]
>>> b[1] = 'ONE'
>>> a
[{1: 'ONE'}]
>>>
Run Code Online (Sandbox Code Playgroud)
这里,在将字典'b'附加到列表'a'之后,我正在改变字典'a'中与键1对应的值.不知怎的,这种变化也反映在列表中.当我将字典附加到列表中时,我不只是附加字典的值吗?看起来好像我已经将一个指向字典的指针附加到列表中,因此对字典的更改也会反映在列表中.
我不希望更改反映在列表中.我该怎么做?
感谢您的时间!
NPE*_*NPE 111
你的名单中包含对原始字典的引用是正确的.
a.append(b.copy())
应该做的伎俩.
请记住,这是一个浅的副本.另一种方法是使用copy.deepcopy(b)
,它可以进行深层复制.
eyq*_*uem 21
还有dict
a = []
b = {1:'one'}
a.append(dict(b))
print a
b[1]='iuqsdgf'
print a
Run Code Online (Sandbox Code Playgroud)
结果
[{1: 'one'}]
[{1: 'one'}]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
149674 次 |
最近记录: |