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的区别相关推荐

  1. copy模块中的copy与deepcopy的区别

    前言 每空闲下来,就觉得以前写的博客很low........也许现在也很low~~~~好吧就当升级版的low吧~~~~ 如果要了解copy与deepcopy的区别,就需要了解Python的存储机制:P ...

  2. 不懂copy与deepcopy的区别?这一篇就够了

    背景 在运用Python进行开发代码过程中,会遇到变量复制备份的场景,但并没有得到预期的结果,例如下面的例子: lista = ['a', 'b', [1, 2, 3]] listb = lista. ...

  3. python中copy和deepcopy的区别_python里shadowcopy和deepcopy的区别

    python中,经常会需要拷贝特定对象,在此可能就会遇到各种bug,原因就是明白这三种操作的区别,赋值,浅拷贝,深拷贝. 赋值(=),浅拷贝(copy)和深拷贝(deepcopy)比较容易区别开的是赋 ...

  4. Python中copy()和deepcopy()的区别

    同样是copy,二者有什么不同呢今天我们就一探究竟!!! 关于copy()和deepcopy()的第一篇博客 初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从 ...

  5. python中copy和deepcopy详细区别

    python中copy和deepcopy 在 python 中,标识一个对象唯一身份的是:对象的id(内存地址),对象类型,对象值. deepcopy是真正意义上的复制,深拷贝,被复制对象完全复制一遍 ...

  6. python安装copy_python中copy和deepcopy 的区别

    请简述赋值, 深拷贝和浅拷贝的区别?(python中如何拷贝一个对象?) 直接赋值(li1 = li): 只传递对象的引用, li1指向对象li的内存地址空间, 因此, 原有列表li改变, 被赋值的l ...

  7. python deepcopy_【Python】copy和deepcopy的区别

    [人生苦短,我用Python] 直入主题,在Python中,我们常常用到copy这个关键字,对于之前做iOS开发的我来说Python中的深拷贝和浅拷贝和iOS中的深浅拷贝还是有一些区别的. 浅拷贝是对 ...

  8. python中copy什么意思_python中copy与deepcopy的区别

    spring MVC入门教程 写一个spring mvc后台传值到前台的一个小例子. 分为以下几个步骤: 1.创建web项目. 导入项目包.具体有如下: spring-aop-4.0.4.RELEAS ...

  9. copy与deepcopy、赋值的区别

    copy()与deepcopy()之间的主要区别是python对数据的存储方式. 首先直接上结论: :深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以改变原有被复制对象不会对已经复制 ...

最新文章

  1. 老调重弹:插件式框架开发的一个简单应用
  2. 消息中间件系列第2讲:如何进行消息队列选型?
  3. 集合框架—HashMap
  4. Geotools简介以及quickstsrt加载shp文件并显示
  5. 关于citrix 负载及WI的一些问题
  6. linux6.4 dns 主从,dns正反解析与主从复制文件同步
  7. 【深度学习】非极大值抑制Non-Maximum Suppression(NMS)一文搞定理论+多平台实现...
  8. 浏览器打开出现证书错误_PADI 电子潜水证书更新啦!
  9. C# WPF抽屉效果实现
  10. jsp连接mysql更新数据库代码_JSP连接MySQL数据库代码
  11. bzoj 3451 Normal
  12. 小程序 跳转到腾讯文档小程序
  13. 全民写作一夜成名 Web2.0:作家造富路线图
  14. serverlet增删改查项目代码
  15. cgroup 分析之CPU和内存部分
  16. [Java 内存]Java内存组成
  17. K8S 完全安装手册
  18. python 桑基图_数据可视化之 Sankey 桑基图的实现
  19. PC机8250芯片组串口通信以及研华PCM3614板卡串口通信程序设计
  20. visual studio新手使用教程

热门文章

  1. 关于PS降噪的两种方法
  2. 我的团长我的团第十三集
  3. 奇文共赏(经典博客总结)
  4. vue 拦截器使用
  5. 云服务器下能安装虚拟机吗,云服务器下能安装虚拟机吗
  6. linux同步阿里云的时间
  7. 左边是地狱右边也是地狱_地狱甚至还能做些什么(除了拿走我们的钱)
  8. 平安养老险广东分公司积极开展“7·8全国保险公众宣传日”系列活动
  9. Python编程:partial偏函数
  10. 前端面试之事件循环机制