• python 深浅copy总结


    总结:

    '''
    总结:假设l1为原数据,l2为deepcopy后的数据:
    1.浅copy,只能改变第一层的内存地址(不可变数据类型除外)。
    2.深copy,能够改变第一层和第二层的内存地址(不可变数据类型除外)。
    3.不可变类型,地址不会发生变化,且不可使用copy ,可以使用copy.deepcopy()。
    4.对deepcopy后的l1或l2数据修改时,l1和l2的内存地址都会发生变化,但l1和l2的数据不会相互干扰。
    '''
    
    import copy
    
    l1=[{'name':'jack'},(1,2,3)]
    l2=copy.deepcopy(l1)
    # l2=l1.copy()
    print("第一层地址变化")
    print(id(l1))
    print(id(l2))
    print('第三层字典变化')
    print(id(l1[0]['name']))
    print(id(l2[0]['name']))
    print('第二层元祖变化')
    print(id(l1[1]))
    print(id(l2[1]))
    
    
    l3=(1,2,3)
    # l4=copy.deepcopy(l3)
    l4=l3.copy()
    print("第一层地址变化")
    print(id(l3))
    print(id(l4))

    总结:经验固然可贵,但唯有实践出真知。

  • 相关阅读:
    Redis持久化
    Redis配置文件详解
    Linux
    有图有真相
    Redis五大数据类型
    Redis基本知识
    Mysql主从复制
    Python脚本实现KVM虚机添加磁盘
    JQuery制作环形进度条
    JQuery制作标签
  • 原文地址:https://www.cnblogs.com/huay/p/11384236.html
Copyright © 2020-2023  润新知