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 图片验证码代码分享
Jul 04 Python
Python实现的石头剪子布代码分享
Aug 22 Python
python学习数据结构实例代码
May 11 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
selenium+python 对输入框的输入处理方法
Oct 11 Python
基于wxPython的GUI实现输入对话框(2)
Feb 27 Python
Python八皇后问题解答过程详解
Jul 29 Python
pygame实现成语填空游戏
Oct 29 Python
Python函数的定义方式与函数参数问题实例分析
Dec 26 Python
python数据预处理 :数据共线性处理详解
Feb 24 Python
Python接口测试环境搭建过程详解
Jun 29 Python
Python+Appium新手教程
Apr 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 sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
PHP中new static() 和 new self() 的区别介绍
2015/01/09 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
用jscript实现新建word文档
2007/06/15 Javascript
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
jquery实现弹窗功能(窗口居中显示)
2017/02/27 Javascript
表格展示利器 Bootstrap Table实例代码
2017/09/06 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python 创建弹出式菜单的实现代码
2017/07/11 Python
Python3 中文文件读写方法
2018/01/23 Python
python入门教程 python入门神图一张
2018/03/05 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python流程控制 while循环实现解析
2019/09/02 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
企划主管岗位职责
2013/12/12 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
法制宣传口号
2014/06/16 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
深入解析MySQL索引数据结构
2021/10/16 MySQL
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android