zoukankan      html  css  js  c++  java
  • 深浅拷贝

    1.引出

      对于可变类型的变量,如list 和 dict这两种类型,如果想要复制一份变量的话,通过变量赋值的方法,会出现修改原变量,改变被赋值的变量的值,所以需要通过切片或是copy、deepcopy方法

    2.可变对象和不可变对象

      不可变对象: 一旦创建就不可修改的对象,包括字符串,元祖,数字
      可变对象:可以修改的对象,包括:列表、字典

    3.切片

    • 切片应用于所有序列,包括:列表、字符串
    • 切片不能应用于字典,对字典只能使用浅拷贝copy() 或 深拷贝deepcopy() 方法

    4.copy() 或 deepcopy()  既可用于序列,也可以用于字典

    • 浅拷贝:对只有一级目录的字典有效
      •   一级目录的字典 {‘k1’: v1}
    • 深拷贝:拷贝所有对象
      •   多级目录的字典 {'k1': [v1, v2]}

    5.总结

      深浅拷贝都是对源对象的复制,占用不同的内存空间
      如果源对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象
      如果源对象不止一级目录的话,源做任何改动,都要影响浅拷贝,但不影响深拷贝
      序列对象的切片其实是浅拷贝,即只拷贝顶级的对象

  • 相关阅读:
    数组操作
    HTML CSS 笔记
    jacascript 滚动scroll
    SEO优化技巧
    STP选举规则和例题
    3.1GSM-R的网络组成
    光缆的型号
    光缆的种类
    fdisk命令分区过程
    文件系统管理--挂载光盘与U盘
  • 原文地址:https://www.cnblogs.com/dongmengze/p/9479735.html
Copyright © 2011-2022 走看看