美文网首页
copy()与deepcopy()区别

copy()与deepcopy()区别

作者: YoungDou | 来源:发表于2020-11-11 12:50 被阅读0次
    可变对象:list dict set
    简单对象
    import copy
    t = [1, 2, 3, 4]
    t1 = t
    c1 = copy.copy(t)
    c2 = copy.deepcopy(t)
    print(id(t),id(t1), id(c1), id(c2))
    #1200892231176 1200892231176 1200892222728 1200892222728
    
    复杂对象(嵌套结构)
    import copy
    t = [1, 2, 3, 4,[1,2,3]]
    t1 = t
    c1 = copy.copy(t)
    c2 = copy.deepcopy(t)
    print(id(t),id(t1), id(c1), id(c2))
    print(id(t[4]),id(t1[4]), id(c1[4]), id(c2[4]))
    #2294743052360 2294743052360 2294591873800 2294585876552
    #2294743065096 2294743065096 2294743065096 2294742993672
    

    区别在于浅拷贝的子结构指向原数据地址。


    结构图
    不可变对象:tuple string int float bool
    import copy
    t = (1, 2, 3, 4)
    t1 = t
    c1 = copy.copy(t)
    c2 = copy.deepcopy(t)
    print(id(t1), id(c1), id(c2))
    #1812694403576 1812694403576 1812694403576
    

    相关文章

      网友评论

          本文标题:copy()与deepcopy()区别

          本文链接:https://www.haomeiwen.com/subject/strebktx.html