2019-07-22

python之拷贝

1.赋值拷贝

    这种拷贝又称引用拷贝,本质是创建一个指向被拷贝列表的引用, 他们使用的是同一块内存区域, 因为无论更改其中任何一个变量, 我们被拷贝的变量也会跟着改变。

        例如: list1 = [1,2,3,4], list2 = list1, 此时list2的值与地址跟list1一样, 如果改变list1或者list2中的某个值, 另一个里的内容也要改变.

2.浅拷贝

    浅拷贝是一维内存拷贝, 又称不完全拷贝, 对于多维的列表, 还会有内存公用的情况, 使用的时候是  变量名.copy

        例如: list1 = [1,2,3,4], list2 = list1.copy, 此时list1与list2的值一样, 但是存放的地址不一样,如果改变list1或者list2中的某个值, 另一个不会跟着改变 .

         对于多维列表来说, 例如: list1 = [1,2,3,[1,2,3]], list2 = list1.copy, 此时与上面的一维列表一样, 但是你如果改变list1或者list2里面的那个列表里面的值, 那另一个也会跟着改变, 而且list1与list2里面的那个列表的地址一样, 但是list1和list2的地址不一样.

3.深拷贝

    又称完全内存拷贝, 将多维列表中的内容递归的复制一遍, 重新存储到一块新的内存空间, 因此在深拷贝不会出现内存公用的情况。使用这种拷贝的时候, 要导入copy模块.

        例如: import  copy    list1 = [1,2,3,4], list2 = copy.deepcopy(list1), 此时list1与list2的值一样, 但是存放的地址不一样, 如果改变list1或者list2中的某个值, 另一个不会跟着改变 .而且, 对于多维列表来说也一样.

    



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 12,246评论 1 118
  • 纪实 准备中: 7月10日,我早早醒来,躺在床上,翻开手机,无意的看到了许多的微课,视频以及教学案例,给了一些启发...
    chocolateli阅读 3,446评论 0 0
  • 博主声明:转载请在开头附加本文链接及作者信息,并标记为转载。本文由博主 威威喵 原创,请多支持与指教。本文首发于此...
    威威喵丶阅读 6,718评论 1 2
  • 符号化二进制崩溃问题 1、首先拿到项目中的dSYM符号化文件,新建一个文件夹吧dSYM放里面,并且双击打开这个文件...
    Hww_123阅读 4,340评论 0 3
  • 爬虫基础概念 "大数据时代"从何而来? - 企业生产的用户数据:阿里指数,百度指数,微博指数... - 政府公开的...
    凌晨两点半的蝎子莱莱阅读 3,349评论 0 1

友情链接更多精彩内容