zoukankan      html  css  js  c++  java
  • Python 深浅Copy

    Python 深浅Copy

    l1 = [1,2,3]
    l2 = li				#相当于标签 为同一地址而已
    l1.append(4)
    print(l1)  #l1=[1,2,3,4]
    print(l2)  #l2=[1,2,3,4]
    
    #浅拷贝 只copy外壳 内部为原地址
    l1 = [1,2,3]
    l2 = l1.copy()
    l1.append(666)
    #l1 = [1,2,3,666]
    #l2 = [1,2,3]
    
    #浅拷贝 只copy外壳 内部为原地址
    l1 = [1,2,3,[22,33]]
    l2 = l1.copy()
    l1[-1].append(6)
    #l1 = [1,2,3,[22,33,6]]
    #l2 = [1,2,3,[22,33,6]]
    

    深copy

    python 对deepcopy进行了优化,不可变的数据类型(int,str...) 仍然沿用同一个内存

    import copy
    l1 = [1,2,3,[22,33]]
    l2 = copy.deepcopy(l1)
    li[-1].append(666)
    #l1 = [1,2,3,[22,33,666]]
    #l2 = [1,2,3,[22,33]]
    

    相关面试题

    l1 = [1,2,3,[22,33]]
    l2 = l1[:]			#切片为浅copy
    l1[-1].append(666)
    #l1 = [1,2,3,[22,33,666]]
    #l2 = [1,2,3,[22,33,666]]
    

    浅copy:嵌套的可变的数据类型是同一个

    深copy:嵌套的可变的数据类型不是同一个

  • 相关阅读:
    spring boot 配置时区差别
    概率期望
    Euler函数与Euler定理
    素数&筛法
    等差子序列
    8.19 T2
    8.19 T1
    量化交易
    挺进

  • 原文地址:https://www.cnblogs.com/pandaa/p/12029877.html
Copyright © 2011-2022 走看看