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

    Python:深浅copy

    浅copy 

    浅拷贝就是对引用的拷贝,执拷贝父对象,里面的数据不拷贝出来,其中的数据与原对象里面数据用的是相同的地址空间

    #浅copy 第一层各自独立,从第二层开始,共用一个内存地址
    s1 = [1, 2, 3,[11,22]]         
    s2 = s1.copy()
    s1[-1].append(666)                  #在s1最后增加元素‘666’,s2也会增加
    print(s1, s2)                        
    print(id(s1), id(s2))               #打印s1与s2的id号,是不同的
    print(id(s1[-1]), id(s2[-1]))       #打印s1与s2中子列表的id号,是相同的
    
    [1, 2, 3, [11, 22, 666]] [1, 2, 3, [11, 22, 666]]
    52642760 53470992
    53471152 53471152

    切片 浅copy

    s1 = [1, 2, 3, [11, 22]]
    s2 = s1[:]
    s1.insert(1,66)
    print(s1, s2)
    s1[-1].append(666)
    print(s1, s2)
    
    [1, 66, 2, 3, [11, 22]] [1, 2, 3, [11, 22]]
    [1, 66, 2, 3, [11, 22, 666]] [1, 2, 3, [11, 22, 666]]

    深copy

    深copy 无论多少层,都是互相独立的。

    import copy               #深copy 需要使用copy模块
    s1 = [1, 2, 3,[11,22]]
    s2 = copy.deepcopy(s1)
    s1.append(666)
    print(s1, s2)
    
    s1 = [1, 2, 3,[11,22]]
    s2 = copy.deepcopy(s1)
    s1[-1].append(666)
    print(s1, s2)
    
    [1, 2, 3, [11, 22], 666] [1, 2, 3, [11, 22]]
    [1, 2, 3, [11, 22, 666]] [1, 2, 3, [11, 22]]
  • 相关阅读:
    html04
    html03
    html02
    html01
    通过脚本获取form表单的数值而不是submit
    myeclipse自带的数据库查看文件
    如何实现数组和List之间的转换?
    Array和ArrayList有何区别?
    ArrayList和LinkedList的区别是什么?
    如何决定使用HashMap还是TreeMap?
  • 原文地址:https://www.cnblogs.com/bailo/p/9085255.html
Copyright © 2011-2022 走看看