如何在Python中复制对象?

WBOY
发布: 2023-08-25 20:33:15
转载
1861人浏览过

如何在python中复制对象?

在Python中,如果你想复制对象,赋值运算符将无法达到目的。它在目标和对象之间创建绑定,即它从不创建新对象。它仅创建一个共享原始对象引用的新变量。为了解决这个问题,提供了复制模块。该模块具有通用的浅复制和深复制操作。

浅拷贝

浅拷贝构造一个新的复合对象,然后将引用插入到原始对象中。它使用以下方法复制对象

copy.copy(x)
Return a shallow copy of x.
登录后复制

深度复制

深拷贝构造一个新的复合对象,然后递归地将原始对象中的对象的副本插入其中。它使用以下方法复制对象  

copy.deepcopy(x[, memo])

Return a deep copy of x. Here, memo is a dictionary of objects already copied during the current copying pass;
登录后复制

使用深拷贝操作可能会出现以下问题 -

立即学习Python免费学习笔记(深入)”;

  • 递归可能会导致递归循环。

  • 由于深层复制会复制所有内容,因此可能会复制过多,例如要在副本之间共享的数据。

然而,deepcopy() 方法避免了这些问题。让我们看看如何 −

标书对比王
标书对比王

标书对比王是一款标书查重工具,支持多份投标文件两两相互比对,重复内容高亮标记,可快速定位重复内容原文所在位置,并可导出比对报告。

标书对比王 58
查看详情 标书对比王
  • 保留当前复制过程中已复制的对象的备忘录字典

  • 允许用户定义的类覆盖复制操作或复制的组件集。

安装和导入copy模块

要安装复制模块,请使用pip −

pip install copy
登录后复制

在安装后使用复制模块 −

import copy
登录后复制

复制对象使用浅拷贝

示例

我们将使用浅拷贝来复制对象。它创建一个新对象来存储原始元素的引用。让我们看一个示例

import copy

# Create a List
myList = [[5, 10], [15, 20]]

# Display the list
print("List = ", myList)

# Shallow Copy
myList2 = copy.copy(myList)

# Display the copy of the List
print("New copy of the list =", myList2)
登录后复制

输出

List =  [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]
登录后复制

在上面的示例中,我们使用 copy() 方法浅复制了列表。

使用深拷贝复制对象

示例

我们将使用 deepcopy() 方法来深度复制对象。深复制还会创建一个新对象。让我们看一个示例

import copy

# Create a List
myList = [[5, 10], [15, 20]]

# Display the list
print("List = ", myList)

# Deep Copy
myList2 = copy.deepcopy(myList)

# Display the copy of the List
print("New copy of the list =", myList2)
登录后复制

输出

List = [[5, 10], [15, 20]]
New copy of the list = [[5, 10], [15, 20]]
登录后复制

以上就是如何在Python中复制对象?的详细内容,更多请关注php中文网其它相关文章!

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号