• python中的深浅拷贝


    一、复制对象为不可变数据类型:
    在这里插入图片描述
    可以发现复制前后对象的id值(内存地址)相同,所以他们是对源数据的引用,没有生成新的对象
    内存图:
    在这里插入图片描述
    二、复制对象为可变数据类型:
    这里一列表为例:
    对于列表中一般元素(不存在嵌套)来说,深浅拷贝没有区别,都是将目标对象复制出一份新的(内存地址不同)
    1、浅拷贝
    方式:
    list.copy()
    copy.copy(list)
    2、深拷贝
    copy.deepcopy(list)
    在这里插入图片描述
    而对于复合对象(存在嵌套数据),深浅拷贝就显现出区别来了
    在这里插入图片描述
    在这里插入图片描述
    可以发现:
    对于复合对象,浅拷贝只是将目标对象拷贝一个新的出来,对于嵌套的对象只是采用地址的引用,并没有复制新的数据(内存地址相同)
    而深拷贝除了将目标对象拷贝出一个新的出来,对于嵌套的数据会递归复制新的出来,二者地址不同
    内存图:
    在这里插入图片描述

  • 相关阅读:
    旧键盘 (20)
    人口普查(20)
    打印沙漏(20)
    程序运行时间(15)
    反转链表 (25)
    科学计数法 (20)
    组个最小数 (20)
    python yield使用
    python如何优雅判断类型
    python中如何优雅使用import
  • 原文地址:https://www.cnblogs.com/ilovepython/p/11068873.html
Copyright © 2020-2023  润新知