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使用MONGODB入门实例
May 11 Python
Python中shutil模块的学习笔记教程
Apr 04 Python
Django入门使用示例
Dec 12 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
Python常见MongoDB数据库操作实例总结
Jul 24 Python
对python自动生成接口测试的示例讲解
Nov 30 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
对django中foreignkey的简单使用详解
Jul 28 Python
Python使用type动态创建类操作示例
Feb 29 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
Sep 24 Python
Python通过yagmail实现发送邮件代码解析
Oct 27 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 date函数参数详解
2006/11/27 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
JavaScript实现x秒后自动跳转到一个页面
2013/01/03 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
使用jquery.qrcode.min.js实现中文转化二维码
2016/03/11 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
2016/04/29 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
vue 弹框产生的滚动穿透问题的解决
2018/09/21 Javascript
Vue infinite update loop的问题解决
2019/04/23 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
Vue Router中应用中间件的方法
2020/08/06 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Python制作exe文件简单流程
2019/01/24 Python
详解Python解决抓取内容乱码问题(decode和encode解码)
2019/03/29 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
详解python tcp编程
2020/08/24 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
写给女朋友的道歉信
2014/01/12 职场文书
怎么写自荐书范文
2014/02/12 职场文书
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers