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实现探测socket和web服务示例
Mar 28 Python
Python中apply函数的用法实例教程
Jul 31 Python
python常见数制转换实例分析
May 09 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
python和flask中返回JSON数据的方法
Mar 26 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
Windows下Sqlmap环境安装教程详解
Aug 04 Python
python 如何实现遗传算法
Sep 22 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解决URL中文GBK乱码问题的两种方法
2014/06/03 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
JS数组的赋值介绍
2014/03/10 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Python+OpenCV人脸检测原理及示例详解
2020/10/19 Python
python实现kMeans算法
2017/12/21 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
python之当你发现QTimer不能用时的解决方法
2019/06/21 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
十一个高级MySql面试题
2014/10/06 面试题
旅游管理专业学生求职信
2013/09/28 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
高三家长寄语
2014/04/03 职场文书
《青海高原一株柳》教学反思
2014/04/25 职场文书
英语教育专业自荐信
2014/05/29 职场文书
房贷收入证明范本
2015/06/12 职场文书
上学路上观后感
2015/06/16 职场文书
小学科学课教学反思
2016/02/23 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
muduo TcpServer模块源码分析
2022/04/26 Redis