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 相关文章推荐
web.py在模板中输出美元符号的方法
Aug 26 Python
Python多进程编程技术实例分析
Sep 16 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
python实现获取Ip归属地等信息
Aug 27 Python
python 全文检索引擎详解
Apr 25 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
Python一句代码实现找出所有水仙花数的方法
Nov 13 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
主流PHP框架的优缺点对比分析
2014/12/25 PHP
PHP引用返回用法示例
2016/05/28 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
PHP多维数组指定多字段排序的示例代码
2018/05/16 PHP
jQuery 跨域访问问题解决方法
2009/12/02 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
小程序实现录音功能
2020/09/22 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
python多重继承实例
2014/10/11 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
Python生成词云的实现代码
2020/01/14 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
python中实现词云图的示例
2020/12/19 Python
CSS3制作气泡对话框的实例教程
2016/05/10 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
联想台湾官网:Lenovo TW
2018/05/09 全球购物
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
《会变的花树叶》教学反思
2014/02/10 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
办公室岗位职责
2015/02/04 职场文书
Consul在linux环境的集群部署
2022/04/08 Servers
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers