gpt4 book ai didi

Python字典深拷贝

转载 作者:IT老高 更新时间:2023-10-28 20:48:12 28 4
gpt4 key购买 nike

我想知道 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")

它是否返回对我在字典中的列表的引用?或者它是否按我的预期工作并将每个列表复制到具有不同引用的新列表中?

我知道什么是深拷贝(所以没有必要解释深拷贝和浅拷贝之间的区别)但我想知道它是否按我预期的那样工作,因此当我使用 addExample() 时不要更改实例变量.

最佳答案

documentation很清楚你得到的是新的副本,而不是引用。 Deepcopy 为内置类型创建深拷贝,但有各种异常(exception)情况,您可以向用户定义的对象添加自定义复制操作,以获得对它们的深层复制支持。如果您不确定,那么这就是单元测试的用途。

关于Python字典深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838642/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com