zoukankan      html  css  js  c++  java
  • Python的深copy和浅copy

    • 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
    • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

    浅copy:

    a = [1, 2, [1, 2, 3]]
    b = a.copy()
    print(a)
    print(b)
    
    a.append(4)
    a[2][0] = 0
    print(a)
    print(b)

    输出结果:

    [1, 2, [1, 2, 3]]
    [1, 2, [1, 2, 3]]
    [1, 2, [0, 2, 3], 4]
    [1, 2, [0, 2, 3]]

    浅copy只复制了第一层数据,列表里存储的子列表其实储存的是内存地址,所以只复制了子列表的地址,当子列表变化时跟着变化

    深copy:

    import copy
    a = [1, 2, [1, 2, 3]]
    b = copy.deepcopy(a)
    print(a)
    print(b)
    
    a.append(4)
    a[2][0] = 0
    print(a)
    print(b)

    输出结果:

    [1, 2, [1, 2, 3]]
    [1, 2, [1, 2, 3]]
    [1, 2, [0, 2, 3],4]
    [1, 2, [1, 2, 3]]

    同样的操作,换成深copy之后,复制之后子列表中的值不会跟着变化(将原来的数据完全复制了一遍)

     

     

     

     

     

  • 相关阅读:
    站立会议第四天
    站立会议第三天
    站立会议第二天
    站立会议第一天
    团队项目估算
    团队计划会议
    《人月神话》阅读笔记01
    《构建之法》阅读笔记06
    微软买书问题
    找水王2
  • 原文地址:https://www.cnblogs.com/dbf-/p/10569625.html
Copyright © 2011-2022 走看看