【发布时间】:2010-10-24 17:31:22
【问题描述】:
我想知道 deepcopy 在以下情况下究竟是如何工作的:
from copy import deepcopy
def copyExample:
self.myDict = {}
firstPosition = "First"
firstPositionContent = ["first", "primero"]
secondPosition = "Second"
secondPositionContent = ["second"]
self.myDict[firstPosition] = firstPositionContent
self.myDict[secondPosition] = secondPositionContent
return deepcopy(self.myDict)
def addExample(self):
copy = self.copyExample()
copy["Second"].add("segundo")
它是否返回对我在字典中的列表的引用?或者它是否按我的预期工作并将每个列表复制到具有不同引用的新列表中?
我知道什么是深拷贝(所以没有必要解释深拷贝和浅拷贝之间的区别),但我想知道它是否像我期望的那样工作,因此当我使用 @ 时不要更改实例变量987654322@.
【问题讨论】:
-
您是否打印了这两个字典以查看它们是否不同?你看见什么了?他们有什么不同吗?如果是这样,则副本有一个新列表,您在其中添加了一个元素。
标签: python dictionary deep-copy