Python 中 copy.copy 的效率
Posted
技术标签:
【中文标题】Python 中 copy.copy 的效率【英文标题】:Efficiency with copy.copy in Python 【发布时间】:2017-04-13 03:50:01 【问题描述】:我需要复制一些对象,我读到 copy.copy 模块可以在 Python 上执行此操作。问题是,这些对象有一些属性是长数组。
那么这种方法有效吗?由于性能在我正在做的这项工作中很重要。
有没有更好的方法来做到这一点?
我需要这个,因为我需要修改原始对象的一些属性,但我也需要它而不被修改,比如 aux。
干杯。
【问题讨论】:
您能粘贴一两个此类对象的示例吗?更多,你读过this和this吗? 如果您需要保存所有属性不变的原始对象,请使用copy.deepcopy
。
也许你可以编写一个复制方法,它只是用 copy.deepcopy 复制属性并保持长数组不变,它们不需要作为副本
@GennadyKandaurov 与 copy.copy 有什么区别?那么性能是主要问题呢?
copy.copy
是浅拷贝,最好阅读docs.python.org/2/library/copy.html。 deepcopy
性能最差,因为它必须递归地复制对象的所有属性。
【参考方案1】:
copy.copy
创建一个对象的浅表副本,它有很好的描述 here。
copy.deepcopy
的性能最差,因为它必须递归地复制对象的所有属性,但 deepcopy
会创建一个真正独立的对象副本。
【讨论】:
以上是关于Python 中 copy.copy 的效率的主要内容,如果未能解决你的问题,请参考以下文章