zoukankan      html  css  js  c++  java
  • 深浅拷贝总结

    #__author__:Administrator}
    #data: 2017/11/13
    # s = [1,'xuxu','dazui']
    # s1 = s.copy()
    # s1[0] = 2
    # print(s1)
    # print(s)

    import copy
    D = {'name':'xuxu','age':'24'}#只有顶级对象(一层)
    c1 = copy.copy(D)
    c2 = copy.deepcopy(D)
    print(id(D)) #形成了三个对象
    print(id(c1))
    print(id(c2))

    D['name'] = 'xuxu6'#改变源,源改变,深浅拷贝不变
    print(D)
    print(c1)
    print(c2)


    D = {
    'xuxu':{'first':'a','second':'b'},
    'toutou':{'dog':'c','cat':'d'}
    }
    import copy
    c1 = copy.copy(D)
    c2 = copy.deepcopy(D)

    print(D)#未做任何改动的时候值都是一样的
    print(c1)
    print(c2)

    print(id(D))#可以看出内存空间对象不一样
    print(id(c1))
    print(id(c2))

    D['xuxu']['first'] = 0#改变源对象的值

    print(D)#D,c1改变,c2不变
    print(c1)
    print(c2)

    #结论
    '''
    深浅拷贝都是对源对象的复制,占用不同的内存空间
    如果源对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象
    如果源对象不止一级目录的话,源做任何改动,都要影响浅拷贝,但不影响深拷贝
    序列对象的切片其实是浅拷贝,即只拷贝顶级的对象
    切片也属于浅拷贝
    浅考只拷贝第一层
    深烤拷贝所有
    '''
  • 相关阅读:
    Python文件操作
    python练习题一
    httpd软件详解
    Linux运维命令<三>
    Linux运维命令<一>
    Linux运维命令<二>
    TCP/IP协议原理与介绍
    Mysql主从复制原理及配置
    Javascript函数返回值及定时器基础
    python人工智能课程内容及必备数学基础
  • 原文地址:https://www.cnblogs.com/xuxu-learn-python/p/7826962.html
Copyright © 2011-2022 走看看