小编典典

python:将字典追加到列表中-我看到了类似行为的指针

python

我在python解释器中尝试了以下操作:

>>>
>>> a = []
>>> b = {1:'one'}
>>> a.append(b)
>>> a
[{1: 'one'}]
>>> b[1] = 'ONE'
>>> a
[{1: 'ONE'}]
>>>

在这里,将字典’b’附加到列表’a’之后,我将更改与字典’a’中的键1对应的值。此更改也以某种方式反映在列表中。当我将字典添加到列表中时,我不仅会添加字典的值吗?好像我已将指向字典的指针附加到列表中,因此对字典的更改也反映在列表中。

我不希望更改反映在列表中。我该怎么做?

感谢您的时间!


阅读 212

收藏
2021-01-20

共1个答案

小编典典

您的列表中包含对原始词典的 引用 ,这是正确的。

a.append(b.copy()) 应该可以。

请记住,这会造成浅表复制。一种替代方法是使用copy.deepcopy(b),它可以复制一个深层副本。

2021-01-20