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利用hook技术破解https的实例代码
Mar 25 Python
python抓取京东价格分析京东商品价格走势
Jan 09 Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python操作mysql数据库实现增删查改功能的方法
Jan 15 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
python的pytest框架之命令行参数详解(下)
Jun 27 Python
wxPython实现绘图小例子
Nov 19 Python
动态设置django的model field的默认值操作步骤
Mar 30 Python
python 下划线的不同用法
Oct 24 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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
浅谈ThinkPHP的URL重写
2014/11/25 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
深入理解Node module模块
2018/03/26 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
利用JS如何获取form表单数据
2019/12/19 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
python批量修改文件后缀示例代码分享
2013/12/24 Python
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
Python中的闭包实例详解
2014/08/29 Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
阿联酋航空官方网站:Emirates
2017/10/17 全球购物
什么是唯一索引
2015/07/05 面试题
护理学专业推荐信
2013/12/03 职场文书
房产销售经理职责
2013/12/20 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
动员大会主持词
2014/03/20 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
人事任命书怎么写
2014/06/05 职场文书
创业计划书介绍
2019/04/24 职场文书
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android