• python中的深浅拷贝


        不可变类型:数字,字符串,元组
        可变类型:列表,字典,集合。

    python为这种需求提供了copy模块。提供了两种主要的copy方法,一种是普通的copy,另一种是deepcopy。我们称前者是浅拷贝,后者为深拷贝。

      是对于一个对象的顶层拷贝,通俗的理解是:拷贝了引用,并没有拷贝内容

    1.浅拷贝

    通过a=b这种方式赋值只是赋值的引用(内存地址),a和b都指向了同一个内存空间,所以他们的id(地址相同),这种就是浅拷贝

    copy模块里面的copy方法实现

    1、对于 不可 变类型 Number String Tuple,浅复制仅仅是地址指向,不会开辟新空间。
    2、对于 可 变类型 List、Dictionary、Set,浅复制会开辟新的空间地址(仅仅是最顶层开辟了新的空间,里层的元素地址还是一样的),进行浅拷贝

    3、浅拷贝后,改变原始对象中为可变类型的元素的值,会同时影响拷贝对象的;改变原始对象中为不可变类型的元素的值,只有原始类型受影响。(操作拷贝对象对原始对象的也是同理)

    2.深拷贝

    copy模块里面的deepcopy方法实现

    1、浅拷贝,除了顶层拷贝,还对子元素也进行了拷贝(本质上递归浅拷贝)
    2、经过深拷贝后,原始对象和拷贝对象所有的元素地址都没有相同的了


    ————————————————

    原文链接:https://blog.csdn.net/weixin_44800244/article/details/88909057

  • 相关阅读:
    JS下载文件并修改文件名
    分页查询优化
    SQL Server初体验
    LayUI样式优化
    LayUI框架应用常见问题
    SQL Server使用常见问题
    XXLJob框架入门介绍
    Java缓存框架整理
    osgearthvcpkg
    Git——commit的提交规范
  • 原文地址:https://www.cnblogs.com/liujie12/p/12468257.html
Copyright © 2020-2023  润新知