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.htmldeepcopy 性能最差,因为它必须递归地复制对象的所有属性。 【参考方案1】:

copy.copy 创建一个对象的浅表副本,它有很好的描述 here。

copy.deepcopy 的性能最差,因为它必须递归地复制对象的所有属性,但 deepcopy 会创建一个真正独立的对象副本。

【讨论】:

以上是关于Python 中 copy.copy 的效率的主要内容,如果未能解决你的问题,请参考以下文章

[PYTHON] 深度解析copy.copy() 与 copy.deepcopy()

Python学习-赋值浅copy和深copy

Python 深浅copy

python中copy模块

Python模块-copy

Python 中copy和deepcopy的区别