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装饰器decorator用法实例
Nov 10 Python
Cpy和Python的效率对比
Mar 20 Python
Python连接mysql数据库的正确姿势
Feb 03 Python
python入门教程之识别验证码
Mar 04 Python
python实现简单登陆系统
Oct 18 Python
在PyCharm中实现关闭一个死循环程序的方法
Nov 29 Python
python求最大值,不使用内置函数的实现方法
Jul 09 Python
python实现拉普拉斯特征图降维示例
Nov 25 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
python中id函数运行方式
Jul 03 Python
python中Django文件上传方法详解
Aug 05 Python
如何在Win10系统使用Python3连接Hive
Oct 15 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
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
jquery 显示*天*时*分*秒实现时间计时器
2014/05/07 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
vue父子组件通信的高级用法示例
2019/08/29 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
学习python (2)
2006/10/31 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
python的多重继承的理解
2017/08/06 Python
Python实现翻转数组功能示例
2018/01/12 Python
python实现图片压缩代码实例
2019/08/12 Python
python实现银行账户系统
2021/02/22 Python
Pytorch 中的optimizer使用说明
2021/03/03 Python
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
电气工程及自动化专业自荐书范文
2013/12/18 职场文书
2014年学校卫生工作总结
2014/11/20 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
导游词之任弼时故居
2020/01/07 职场文书
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python
java开发双人五子棋游戏
2022/05/06 Java/Android
JS高级程序设计之class继承重点详解
2022/07/07 Javascript