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列表计数及插入实例
Dec 17 Python
Python编程之微信推送模板消息功能示例
Aug 21 Python
python在文本开头插入一行的实例
May 02 Python
TensorFlow用expand_dim()来增加维度的方法
Jul 26 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
python网络编程之多线程同时接受和发送
Sep 03 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
在jupyter notebook中调用.ipynb文件方式
Apr 14 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
解决keras使用cov1D函数的输入问题
Jun 29 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
Jan 24 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中isset()和unset()函数的用法小结
2014/03/11 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
第五章之BootStrap 栅格系统
2016/04/25 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
二维码图片生成器QRCode.js简单介绍
2017/08/18 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python3实现转换Image图片格式
2018/06/21 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
使用python实现滑动验证码功能
2019/08/05 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
纯css3制作网站后台管理面板
2014/12/30 HTML / CSS
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
门诊挂号室室长岗位职责
2013/11/27 职场文书
争论的故事教学反思
2014/02/06 职场文书
城南旧事电影观后感
2015/06/16 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
企业团队精神心得体会
2016/01/19 职场文书