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

    import copy
    
    l1 = [10,'a1',[110,111],'ds',]
    l2 = copy.copy(l1)  #浅拷贝
    
    print(l1)
    print(l2)
    l1[1] = 11  #改变L1的值
    l1[2][0] = 1111  #改变l1内嵌列表的值
    print(l1)
    print(l2)
    print(id(l1))
    print(id(l2))
    print(id(l1[2][0]))
    print(id(l2[2][0]))
    
    
    #[10, 'a1', [110, 111], 'ds']
    #[10, 'a1', [110, 111], 'ds']
    #通过下面的结果对比,发现浅拷贝对于内嵌多层数据类型的操作,如果多层数据类型值改变,浅拷贝的对象也会跟着改变
    #[10, 11, [1111, 111], 'ds']
    #[10, 'a1', [1111, 111], 'ds']
    View Code
    import copy
    
    l1 = [10,'a1',[110,111],'ds',]
    l2 = copy.deepcopy(l1)
    
    print(l1)
    print(l2)
    l1[1] = 11  #改变L1的值
    l1[2][0] = 1111  #改变l1内层数据的值
    print(l1)
    print(l2)
    print(id(l1))
    print(id(l2))
    print(id(l1[2][0]))
    print(id(l2[2][0]))
    
    #[10, 'a1', [110, 111], 'ds']
    #[10, 'a1', [110, 111], 'ds']
    #结合上面的例子进行对比发现,对于深层拷贝,内嵌多层的数据类型的值,被改变,不会影响到另一方拷贝或被拷贝的对象
    #[10, 11, [1111, 111], 'ds']
    #[10, 'a1', [110, 111], 'ds']
    View Code
  • 相关阅读:
    shell lab
    cache lab
    后缀树
    leetcode maximum-length-of-repeated-subarray/submissions
    leetcode assign-cookies
    lcs
    leetcode delete-operation-for-two-strings
    【C】C语言typedef
    【C】C语言结构体指针的语法
    【JAVA】Java 命令行参数解析
  • 原文地址:https://www.cnblogs.com/sxlnnnn/p/6364624.html
Copyright © 2011-2022 走看看