• Python 中的深拷贝和浅拷贝


    1.深拷贝VS浅拷贝

    • 所谓浅拷贝就是对引用的拷贝 

      (里面的数据不拷贝出来,其中的数据与原对象里面数据用的是相同的地址空间)

    • 所谓深拷贝就是对对象的资源的拷贝

      (里面的数据拷贝出来。深拷贝有自己的存储空间,有自己定义的数据,跟原对象一点关系也没有。连根拔起)

    举个例子:

      浅拷贝就是拷贝电影名,深拷贝就是拷贝电影名指向的数据(即可以看的电影)。

    注意:

    对不可变类型的拷贝:

      (1)如果其中全部是不可变类型的数据,copy.copy 与 copy.deepcopy结果相同,都是指向引用

      (2)只要其中有一个可变类型的数据,copy.deepcopy依然是深拷贝,copy.copy 还是指向

      (别漏出可变的破绽,深拷贝拷死你没商量ヾ(◍°∇°◍)ノ゙)

    2.拷贝的其他方式

      (1)列表切片 属于浅拷贝

    d = c[:] 
    d = copy.copy(c) 
    两者一样, 属于浅拷贝 

      (2)字典 copy方法  属于浅拷贝

      拷贝key,指向和原来相同的 value

    3.对赋值的认识:

    • 赋值:将一个对象的地址赋值给一个变量,让变量指向该地址( 旧瓶装旧酒 )
    • 修改不可变对象(str、tuple)需要开辟新的空间
    • 修改可变对象(list等)不需要开辟新的空间
  • 相关阅读:
    Verilog手绘FVH信号
    Verilog编码规范与时序收敛
    关于DDS的基础知识
    阅读ug949-vivado-design-methodology笔记
    在windows系统上使用pip命令安装python的第三方库
    pandas第一课
    视频外同步信号研究---fvh
    FPGA调试技巧
    关于FIFO异步复位的问题
    搭建一个microblaze的最小系统
  • 原文地址:https://www.cnblogs.com/liangmingshen/p/9245803.html
Copyright © 2020-2023  润新知