有时候我需要深度复制一个对象,有时候这个对象是字典对象,因此我使用 **
运算符来方便地复制它,但我一直想知道深度复制是否在某种意义上更有效或更高效。
就内存占用和 CPU 时间而言,哪个更有效率?深度复制是否像 **
运算符一样迭代呢?
import copy
myObj = {"some": "data", "to": "copy"}
# With using unpacking operator.
newObj1 = {**myObj}
# With using `copy.deepcopy` function.
newObj2 = copy.deepcopy(myObj)
newObj1
时,真正的对象并没有被修改,但如果你改变了主要的对象,它会同时改变继承自newObj1
的对象,我理解得对吗? - Guven DegirmencinewObj1 ['to']
的元素将改变myObj
。 它们都包含对同一可变列表的引用。 - Brad Solomon