Python list的深拷贝和浅拷贝



  • 深拷贝和浅拷贝

    列表存储数据,列表拷贝就是数据备份

    浅拷贝
    优点:占用内存较少
    缺点:修改深层数据,会影响原数据

    深拷贝
    优点:修改数据,互不影响
    缺点:占用内存较大

    """
      深浅拷贝
          浅拷贝 复制 一层
          深拷贝 复制 全部
          修改拷贝后是否影响拷贝前?
              如果数据有 1份, 那么互相影响
              如果数据有 2份, 那么互不影响
    """
    # 准备深拷贝工具
    import copy
    
    list_01 = [10, [20, 30]]
    list_02 = list_01    # 赋值
    list_03 = list_01[:]    # 切片(浅拷贝)
    list_04 = copy.deepcopy(list_01)    # 深拷贝
    

    list_02[0] = 10000   # 因为数据1份,所以互相影响
    list_02[1][0] = 20000
    
    list_03[0] = 1000    # 修改浅拷贝浅数据不影响拷贝前的数据
    list_03[1][0] = 2000     # 修改浅拷贝深层数据影响拷贝前的数据
    
    list_04[0] = 100
    list_04[1][0] = 200    # 修改深拷贝后数据 不影拷贝前的数据
    



posted @ 2021-06-01 23:14  Librarookie  阅读(48)  评论(0编辑  收藏  举报