copy与deepcopy的区别
1. copy()
copy()用来复制列表或字典里的值
,而不是复制它们的引用。但是copy()只能复制单纯的、不包含子列表的列表。
a=[1,2,3]
copyList=a.copy()
print("After copying...","a=",a,"copyList=",copyList)a[0]=4
print("After changing...","a=",a,"copyList=",copyList)#输出
After copying... a= [1, 2, 3] copyList= [1, 2, 3]
After changing... a= [4, 2, 3] copyList= [1, 2, 3]
可见,此时a与copyList就是两个不同的列表。因为copy()函数只让copyList复制了a中的值
,所以a与copyList互不影响
。
2. deepcopy()
deepcopy()可以复制的列表里包含子列表,但copy()不可以。
import copya=[1,2,3]
deepCopyList=copy.deepcopy(a) #首先要导入copy,只能使用copy来调用deepcopy(list)
print("After copying...","a=",a,"deepCopyList=",deepCopyList)a[0]=4
print("After changing...","a=",a,"deepCopyList=",deepCopyList)#输出
After copying... a= [1, 2, 3] deepCopyList= [1, 2, 3]
After changing... a= [4, 2, 3] deepCopyList= [1, 2, 3]
在该形式的列表下,deepcopy()与copy()的方法相同。
下面介绍不同的地方:
import copya=[1,2,[3,4]]
copyList=a.copy()
deepCopyList=copy.deepcopy(a)
print("After copying...","a=",a,"copyList=",copyList,"deepCopyList=",deepCopyList)a[2][0]=5
print("After changing...","a=",a,"copyList=",copyList,"deepCopyList=",deepCopyList)#输出
After copying... a= [1, 2, [3, 4]] copyList= [1, 2, [3, 4]] deepCopyList= [1, 2, [3, 4]]
After changing... a= [1, 2, [5, 4]] copyList= [1, 2, [5, 4]] deepCopyList= [1, 2, [3, 4]]
在上述代码中,列表a改变,列表copyList也发生了改变,但是列表deepCopyList并没有发生改变。列表copyList只拷贝了单层列表,而列表deepCopyList拷贝了嵌套的列表。
copy与deepcopy的区别相关推荐
- copy模块中的copy与deepcopy的区别
前言 每空闲下来,就觉得以前写的博客很low........也许现在也很low~~~~好吧就当升级版的low吧~~~~ 如果要了解copy与deepcopy的区别,就需要了解Python的存储机制:P ...
- 不懂copy与deepcopy的区别?这一篇就够了
背景 在运用Python进行开发代码过程中,会遇到变量复制备份的场景,但并没有得到预期的结果,例如下面的例子: lista = ['a', 'b', [1, 2, 3]] listb = lista. ...
- python中copy和deepcopy的区别_python里shadowcopy和deepcopy的区别
python中,经常会需要拷贝特定对象,在此可能就会遇到各种bug,原因就是明白这三种操作的区别,赋值,浅拷贝,深拷贝. 赋值(=),浅拷贝(copy)和深拷贝(deepcopy)比较容易区别开的是赋 ...
- Python中copy()和deepcopy()的区别
同样是copy,二者有什么不同呢今天我们就一探究竟!!! 关于copy()和deepcopy()的第一篇博客 初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从 ...
- python中copy和deepcopy详细区别
python中copy和deepcopy 在 python 中,标识一个对象唯一身份的是:对象的id(内存地址),对象类型,对象值. deepcopy是真正意义上的复制,深拷贝,被复制对象完全复制一遍 ...
- python安装copy_python中copy和deepcopy 的区别
请简述赋值, 深拷贝和浅拷贝的区别?(python中如何拷贝一个对象?) 直接赋值(li1 = li): 只传递对象的引用, li1指向对象li的内存地址空间, 因此, 原有列表li改变, 被赋值的l ...
- python deepcopy_【Python】copy和deepcopy的区别
[人生苦短,我用Python] 直入主题,在Python中,我们常常用到copy这个关键字,对于之前做iOS开发的我来说Python中的深拷贝和浅拷贝和iOS中的深浅拷贝还是有一些区别的. 浅拷贝是对 ...
- python中copy什么意思_python中copy与deepcopy的区别
spring MVC入门教程 写一个spring mvc后台传值到前台的一个小例子. 分为以下几个步骤: 1.创建web项目. 导入项目包.具体有如下: spring-aop-4.0.4.RELEAS ...
- copy与deepcopy、赋值的区别
copy()与deepcopy()之间的主要区别是python对数据的存储方式. 首先直接上结论: :深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以改变原有被复制对象不会对已经复制 ...
最新文章
- 老调重弹:插件式框架开发的一个简单应用
- 消息中间件系列第2讲:如何进行消息队列选型?
- 集合框架—HashMap
- Geotools简介以及quickstsrt加载shp文件并显示
- 关于citrix 负载及WI的一些问题
- linux6.4 dns 主从,dns正反解析与主从复制文件同步
- 【深度学习】非极大值抑制Non-Maximum Suppression(NMS)一文搞定理论+多平台实现...
- 浏览器打开出现证书错误_PADI 电子潜水证书更新啦!
- C# WPF抽屉效果实现
- jsp连接mysql更新数据库代码_JSP连接MySQL数据库代码
- bzoj 3451 Normal
- 小程序 跳转到腾讯文档小程序
- 全民写作一夜成名 Web2.0:作家造富路线图
- serverlet增删改查项目代码
- cgroup 分析之CPU和内存部分
- [Java 内存]Java内存组成
- K8S 完全安装手册
- python 桑基图_数据可视化之 Sankey 桑基图的实现
- PC机8250芯片组串口通信以及研华PCM3614板卡串口通信程序设计
- visual studio新手使用教程