• 深浅拷贝


    当我们对列表进行复制一份给新的变量名的时候,一共有两种方式来进行分,分别是浅copy、深copy。那么两者有什么区别呢?都该什么时候使用呢?

    一、深浅copy的原理

    • 浅copy:是把原列表第一层的内存地址不加区分完全copy一份给新列表
    • 深copy(deepcopy):新列表与原列表的改操作完全独立开
    拷贝后,容器类型的内存地址不同,会重新在内存中申请内存空间

    1.1 浅copy的定义

     深拷贝

    • 浅拷贝:减少内存的使用
    • 深拷贝:以后在做数据的清洗、修改或者入库的时候,对原数据进行复制一份,以防数据修改之后,找不到原数据。(相当于备份

    总结:

    1. 对于不可变类型的赋值,都是产生了新值,让原列表的索引指向新的内存地址,并不会影响新列表
    2. 但对于可变类型,我们可以改变可变类型中包含的值,但内存地址不变,即原列表的索引指向仍然指向原来的内存地址,于是新列表也跟着一起受。
    3. 要想copy得到的新列表与原列表的改操作完全独立开,必须有一种可以区分开可变类型与不可变类型的copy机制,这就是深copy
  • 相关阅读:
    606. Construct String from Binary Tree
    557. Reverse Words in a String III
    551. Student Attendance Record I
    541. Reverse String II
    521. Longest Uncommon Subsequence I
    520. Detect Capital
    459. Repeated Substring Pattern
    人脸检测源码facedetection
    人脸检测的model类facemodel
    人脸检测解析json的工具类face_test
  • 原文地址:https://www.cnblogs.com/Tornadoes-Destroy-Parking-Lots/p/12450383.html
Copyright © 2020-2023  润新知