python:将字典追加到列表中-我看到了类似行为的指针
问题内容:
我在python解释器中尝试了以下操作:
>>>
>>> a = []
>>> b = {1:'one'}
>>> a.append(b)
>>> a
[{1: 'one'}]
>>> b[1] = 'ONE'
>>> a
[{1: 'ONE'}]
>>>
在这里,将字典’b’附加到列表’a’之后,我将更改与字典’a’中的键1对应的值。此更改也以某种方式反映在列表中。当我将字典添加到列表中时,我不仅会添加字典的值吗?好像我已将指向字典的指针附加到列表中,因此对字典的更改也反映在列表中。
我不希望更改反映在列表中。我该怎么做?
感谢您的时间!
问题答案:
您的列表中包含对原始词典的 引用 ,这是正确的。
a.append(b.copy())
应该可以。
请记住,这会造成浅表复制。一种替代方法是使用copy.deepcopy(b)
,它可以复制一个深层副本。