• Python_深拷贝和浅拷贝


    深拷贝与浅拷贝

    import copy
    v = 123
    v1 = copy.copy(v) #浅拷贝
    v2 = copy.deepcopy(v) #深拷贝

    **拷贝只拷贝可变数据类型,浅拷贝只拷贝第一层,深拷贝拷贝所有层

    不可变数据类型:int  str  bool 元组tuple

    可变数据类型:列表list  集合set  字典dict

    # 变量是 int  str  bool 元组tuple
    v = “wangxiaobei”
    v1 = copy.copy(v) #浅拷贝
    v2 = copy.deepcopy(v) #深拷贝
    print(id(v),id(v1))
    print(id(v),id(v2))
    
    #2877544721776 2877544721776
    #2877544721776 2877544721776

     深拷贝和浅拷贝在对不可变数据进行复制时,不改变数据,都是指向该数据的地址(原因是Python的小数据池)

    # 列表
    v = [1,2,3]
    v1 = copy.copy(v)
    v2 = copy.deepcopy(v)
    print(id(v),id(v1))
    print(id(v),id(v2))
    
    #2877551762760 2877544718856
    #2877551762760 2877551412680
    
    # 嵌套列表
    v = [1,2,[22,11,33]]
    v1 = copy.copy(v)
    v2 = copy.deepcopy(v)
    print(id(v[2]),id(v1[2]))
    print(id(v[2]),id(v2[2]))
    
    #2877551763208 2877551763208
    #2877551763208 2877544722184
  • 相关阅读:
    053(二十五)
    053(二十四)
    053(二十三)
    053(二十二)
    053(二十一)
    053(二十)
    053(十九)
    053(十八)
    053(十七)
    单例设计模式
  • 原文地址:https://www.cnblogs.com/wangxiaobei2019/p/11511466.html
Copyright © 2020-2023  润新知