python中copy和deepcopy

  1. 在 python 中,标识一个对象唯一身份的是:对象的id(内存地址),对象类型,对象值。
  2. deepcopy是真正意义上的复制,深拷贝,被复制对象完全复制一遍作为独立的新个体,新开辟一块空间。
  3. 等于赋值浅拷贝,不会产生独立对象,只是对原有数据块打上新标签,其中一个标签改变,数据块就会变化。
  4. copy仅拷贝对象本身,浅拷贝不会对其中的子对象进行拷贝,对子对象进行修改也会随着修改,
  5. 对于不可变类型(元组、数值,字符串等)为浅拷贝,对象的id值与浅复制原来的值相同
  6. 对于可变类型(列表、字典等)为深拷贝
    1. 复制的对象中无复杂子对象,即列表中不嵌套列表,原来值的改变并不会影响浅复制的值,同时浅复制的值改变也并不会影响原来的值。原来值的id值与浅复制原来的值不同
    2. 复制的对象中有复杂子对象 (例如列表中的一个子元素是一个列表)如果改变复杂子对象的值(列表中的值)会影响浅复制的值。
a = [1,2,3,[4,5],1]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)a.append(9)
a[3].append(6)print(a)  #[1, 2, 3, [4, 5, 6], 1, 9]
print(b)    #[1, 2, 3, [4, 5, 6], 1, 9]
print(c)    #[1, 2, 3, [4, 5, 6], 1]
print(d)    #[1, 2, 3, [4, 5], 1]print(id(a))   #4594148288
print(id(b))    #4594148288
print(id(c))    #4594455328
print(id(d))    #4592688496x = 'Hello World'
y = x
z = copy.copy(x)
w = copy.deepcopy(x)
print(id(x)) #4617118576
print(id(y)) #4617118576
print(id(z)) #4617118576
print(id(w)) #4617118576

python中copy和deepcopy详细区别相关推荐

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

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

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

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

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

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

  4. Python中copy和deepcopy中的区别

    最近在学习 Python编程,遇到copy和deepcopy感到很困惑,现在针对这两个方法进行区分,一种是浅复制(copy),一种是深度复制(deepcopy). 首先说一下deepcopy,所谓的深 ...

  5. 2020-09-18 python中copy()和deepcopy()详解

    首先直接上结论: -–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在.所以改变原有被复制对象不会对已经复制出来的新对象产生影响. -–而浅复制并不会产生一个独立的对 ...

  6. python中copy()和deepcopy()详解

    参考文章 http://iaman.actor/blog/2016/04/17/copy-in-python **首先直接上结论: -–我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独 ...

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

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

  8. python中copy和deepcopy详解

    python中标识一个对象唯一身份的是:对象的id(内存地址),对象类型,对象值. deepcopy是真正意义上的复制,深拷贝,被复制对象完全复制一遍作为独立的新个体,新开辟一块空间. 浅拷贝,不会产 ...

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

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

最新文章

  1. Google-GLog编译以及使用
  2. Dataset之JFT:JFT/FastEval14k数据集的简介、下载、案例应用之详细攻略
  3. 带你少走弯路:强烈推荐的TensorFlow快速入门资料和翻译(可下载)
  4. 即时通讯音视频开发(八):常见的实时语音通讯编码标准
  5. JavaSE第九天20160815
  6. D3.js以及通用JS(JavaScript)读取并解析server端JSON的注意事项
  7. 图像处理一之-摄像头二值化处理-(什么是二值化)
  8. lumion拍摄视频基础
  9. vim 配置(ma6174 + YCM)
  10. 链游玩家寻找新一代武侠小说掌门人,签约青年武侠作家常博涵
  11. 无限轮播的实现,未加自动轮播效果(非原创)
  12. pythonwhile嵌套if_python中for、while循环、if嵌套的使用
  13. java 音频倍速播放_如何让视频加速播放
  14. python创建一个国际象棋棋盘,Jupyter Notebook:实现国际象棋棋盘
  15. 关于FlashDB的应用-GD32F450上
  16. 红米Note12 Turbo和真我GT Neo5 SE参数对比 红米Note12 Turbo和真我GT Neo5 SE
  17. CTFHub-网站源码-wp
  18. 拼图java代码_Java制作智能拼图游戏原理及代码
  19. 脉冲宽度调制pdm_如何通俗易懂地解释「脉冲宽度调制(PWM)」?
  20. 大家对人工智能的发展怎么看?

热门文章

  1. 打造绿色数据中心,Colt DCS 是认真的!
  2. argparse用于解析命令行参数
  3. 工程图字体宋体仿宋_宋体字的发明与秦桧无关
  4. 索引,主键,唯一索引,联合索引的区别
  5. 从零开始玩rv1126core板(零)
  6. 蓝桥杯试题算法训练之数字三角形——Python满分解答
  7. 控制chrome中PDF预览工具栏
  8. 一个文本按指定字符分割成多个文本
  9. Mandelbrot Set Julia Set -- 美丽分形 (C++, MFC + BCG + CxImage 实现)
  10. 路由与交换-华为eNSP-交换机上配置DHCP技术