zoukankan      html  css  js  c++  java
  • Python高级笔记(二) -- 深拷贝和浅拷贝

    1. 列表复制 - 避免引用的副作用

    1.1 list函数、分片操作、copy()方法

    1.2 嵌套列表的复制

    1.3 通过copy模块实现深拷贝

    1. 深拷贝

    1.1 类型1

     

    注意: d没有改变, 因为d所拷贝的数据没有改变, 而是c往后添加数据。

    1.2 类型2: 元组

    如果copy.copy拷贝的是元组是深拷贝! 不会进行浅拷贝, 仅仅是指向, 因为元组是不可变类型, 因此用copy.copy的时候会自动判断.

    2. 浅拷贝

    2.1 类型1

    2.2 类型2

    • 如果 用copy.copy, copy.deepcopy对一个全部是不可变类型的数据进行拷贝, 那么他们结果相同, 都是引用指向

    • 如果 拷贝的一个拥有 可变类型的数据, 即使元组是最顶层, 那么 deepcopy依然是 深拷贝, 而 copy.copy还是指向。

    2.3 类型3: 切片是浅拷贝

    2.4 类型4: 字典是浅拷贝

    • 字典无序, 每一个key都通过哈希来得到

    • 他们的value的值并不在字典里存放, 而是存放着引用 !

     

    2.5 类型5: 函数的形参是列表(浅拷贝)

    如果参数传入的是deepcopy, 则产生的是深拷贝, 列表里不会对参数产生修改

  • 相关阅读:
    shell脚本之for循环
    shell脚本小集锦
    Java构建指定大小文件
    IntelliJ+Maven+Spring+Tomcat项目搭建(MAC)
    Git下基本命令操作
    Mac下IntelliJ的Git、GitHub配置及使用
    Git下的.DS_Store文件
    Mac下GitHub以及GitHub Desktop使用实战
    idea快捷键
    汉字获取首字符
  • 原文地址:https://www.cnblogs.com/douzujun/p/10770922.html
Copyright © 2011-2022 走看看