美文网首页
深浅拷贝的异同

深浅拷贝的异同

作者: Future石 | 来源:发表于2018-03-12 15:33 被阅读0次

深浅拷贝异同主要体现于可变对象上,对于tuple之类的不可变对面,深浅拷贝后,地址值和变量值都是一样的,但是对与list之类的可变对象,深浅拷贝后,差异性很大

>>>import copy
>>>a = (1,2,3)
>>>b = a 
>>>c = copy.copy(a)
>>>d = copy.deepcopy(a)

>>>id(a)==id(b)==id(c)==id(d)
True


>>>a = [1,2,3,[4,4]]
>>>b = a 
>>>c = copy.copy(a)
>>>d = copy.deepcopy(a)

>>> a[3].append(4)
>>>a.append[5]

>>>a, b, c, d
[1,2,3,[4,4,4],5] #a
[1,2,3,[4,4,4],5] #b,  使用is拷贝,b的地址值和变量值一直保持和a一样。ab指向同一块内存
[1,2,3,[4,4,4]]    #c    使用copy浅拷贝,a的某个元素内部变化,c的相同索引位置的值也会变化, 不指向同一内存
[1,2,3,[4,4]]        #d   使用deepcopy深拷贝,重新划分一块内存给d,地址值改变,d不跟随a变动

相关文章

  • 深浅拷贝的异同

    深浅拷贝异同主要体现于可变对象上,对于tuple之类的不可变对面,深浅拷贝后,地址值和变量值都是一样的,但是对与l...

  • 2018-08-29

    深浅拷贝 1.根据拷贝内容的不同,分为深浅拷贝 深拷贝:内容...

  • js的深浅拷贝

    js的深浅拷贝可以分为数组的深浅拷贝和对象的深浅拷贝 一、数组的深浅拷贝如果只是简单的将数组中的元素付给另外一个数...

  • Python—浅拷贝与深拷贝

    浅拷贝 深拷贝 深浅拷贝的作用

  • 深浅拷贝

    先来了解一下这些:在js中变量类型基本分为两种:基本数据类型和引用数据类型;基本类型:Underfied Null...

  • 深浅拷贝

    浅拷贝是对一个对象的顶层拷贝。通俗的理解就是:拷贝了引用,并没有拷贝内容。 深拷贝是对于一个对象所有层次的拷贝(递...

  • 深浅拷贝

    深浅拷贝.copy 浅拷贝 这是一个方法,浅拷贝修改可变类型是会将原数据也一块修改 Copy.deepcopy 深...

  • 深浅拷贝

    1:is 和 ==的区别 is 是比较两个引用是否指向了同一个对象(地址引用比较)。== 是比较两个对象是否相等。...

  • 深浅拷贝

    函数的传递,与matlab不同,具有以下特点: 1.直接赋值会带来不同ID,例如,a=2,b=2 2.传递引用赋值...

  • 深浅拷贝

    最近一直被问到深浅拷贝的问题。自己也确实不太清楚怎么回事,现在来研究一下。 什么是深浅拷贝 浅拷贝:指针拷贝,不会...

网友评论

      本文标题:深浅拷贝的异同

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