Python 中的 copy()和deepcopy()


Posted in Python onNovember 07, 2021

前言:

在处理列表和字典时,尽管传递引用常常是最方便的方法,但如果函数修改了传入的列表或字典,可能不希望这些变动影响原来的列表或字典。要做到这一点,Python提供了名为copy的模块,其中包含copy()deepcopy()函数。

第一个函数copy.copy() ,可以用来复制列表或字典这样的可变值,而不是只复制引用。

两者的区别是copy.copy()是这复制了列表或字典的值,但是引用还是同一个。而copy.deepcopy()是产生一个新的引用使新的变量和被复制变量引用不同。

看下面的示例代码:

1、copy.copy()

示例代码:

import copy
spam = ['A','B','C','D',[1,2,3,4]]
cheese = copy.copy(spam)
spam[0] = 42
print(spam)

运行结果:

[42,'B','C','D',[1,2,3,4]]

根据结果可以看出,使用copy.copy()函数时,cheese是复制了spam列表引用,对spam列表操作时,也会对cheese列表产生影响。这也被称为浅copy

2、deepcopy.copy()

示例代码:

#Python学习交流群:778463939
import copy
spam = ['A','B','C','D',[1,2,3,4]]
cheese = copy.deepcopy(spam)#不同部分
spam[0] = 42
print(spam)

运行结果:

[42,'B','C','D',[1,2,3,4]]

根据结果可以看出,使用deepcopy()时,对spam列表操作不会对cheese列表产生影响,这是因为deepcopy()是产生一个新的引用,这样spamcheese

是两个不同的引用所以在对spam列表操作时不会对cheese列表产生影响。

到此这篇关于Python 中的 copy()和deepcopy()的文章就介绍到这了,更多相关Python  copy()和deepcopy()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解Python如何获取列表(List)的中位数
Aug 12 Python
Python 常用 PEP8 编码规范详解
Jan 22 Python
Django自定义manage命令实例代码
Feb 11 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
tensorflow实现训练变量checkpoint的保存与读取
Feb 10 Python
python实现udp传输图片功能
Mar 20 Python
Keras中的多分类损失函数用法categorical_crossentropy
Jun 11 Python
Django mysqlclient安装和使用详解
Sep 17 Python
Python MNIST手写体识别详解与试练
Python基础 括号()[]{}的详解
Nov 07 #Python
Python Flask搭建yolov3目标检测系统详解流程
关于 Python json中load和loads区别
Nov 07 #Python
Python卷积神经网络图片分类框架详解分析
Nov 07 #Python
Python人工智能之混合高斯模型运动目标检测详解分析
7个关于Python的经典基础案例
Nov 07 #Python
You might like
php echo 输出字符串函数详解
2010/05/13 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
PYQT5 vscode联合操作qtdesigner的方法
2020/03/24 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
小学校园活动策划
2014/01/30 职场文书
小学班主任评语
2014/12/29 职场文书
单位病假条范文
2015/08/17 职场文书
聘任书格式及范文
2015/09/21 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server
ORM模型框架操作mysql数据库的方法
2021/07/25 MySQL
Python编程编写完善的命令行工具
2021/09/15 Python
win10系统xps文件怎么打开?win10打开xps文件的两种操作方法
2022/07/23 数码科技
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技