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文件夹与文件的操作实现代码
Jul 13 Python
python快速建立超简单的web服务器的实现方法
Feb 17 Python
python3.X 抓取火车票信息【修正版】
Jun 19 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
Python数据类型之List列表实例详解
May 08 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
python3爬取torrent种子链接实例
Jan 16 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
Feb 06 Python
使用python的turtle函数绘制一个滑稽表情
Feb 28 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
详解用 python-docx 创建浮动图片
Jan 24 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 伪静态之IIS篇
2014/06/02 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
2010/04/16 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
python将图片文件转换成base64编码的方法
2015/03/14 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
Python实现一个服务器监听多个客户端请求
2018/04/12 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
详解python:time模块用法
2019/03/25 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
Django ModelForm操作及验证方式
2020/03/30 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
html+css3实现的登录界面
2020/12/09 HTML / CSS
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
乌克兰数字设备、配件和智能技术的连锁商店:KTC
2020/08/18 全球购物
迟到检讨书400字
2014/01/13 职场文书
环境工程专业自荐信
2014/03/03 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
2015年评职称个人工作总结
2015/10/15 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript