zoukankan      html  css  js  c++  java
  • 列表(三)-深浅拷贝

    赋值:修改原列表会影响赋值列表

    浅拷贝:只拷贝列表的最外层,内部全部引用,修改最外层列表,不会影响,修改内层对象会影响浅拷贝对象。

    深拷贝:拷贝所有可变类型,原列表 不影响深拷贝对象

    l1 = [1,2,3,[4,5]]
    print(id(l1))
    
    # 赋值操作:改变其中一个,会影响另一个变量
    l2 = l1
    
    # 浅拷贝
    l3 = l1.copy()
    
    # 深拷贝
    import copy
    l4 = copy.deepcopy(l1)
    
    
    l1.append(6)
    print(l1)   # [1,2,3,[4,5],6]
    print(l2)   # [1,2,3,[4,5],6]
    print(l3)  #  [1,2,3,[4,5]]
    print(l4)  #  [1,2,3,[4,5]]
    
    l1[3].append(6)
    
    print(l1)  # [1,2,3,[4,5,6]]
    print(l2)  # [1,2,3,[4,5,6]]
    print(l3) # [1,2,3,[4,5,6]]
    print(l4)  # [1,2,3,[4,5]]
    

    图解


    赋值: l1.append(6)

    赋值:l1[3].append(6)

    浅拷贝: l1.append(6)

    浅拷贝:l1[3].append(6)

    深拷贝 : l1.append(6)

    深拷贝:l1[3].append(6)

  • 相关阅读:
    博客
    参考博客
    KMP
    串匹配
    简单数论
    B
    各种常用函数的模板以及自己的测试数据
    header
    memcached的图形界面监控
    缓存策略
  • 原文地址:https://www.cnblogs.com/duxiangjie/p/14063109.html
Copyright © 2011-2022 走看看