美文网首页
python--深浅拷贝

python--深浅拷贝

作者: 昆仑草莽 | 来源:发表于2019-03-15 13:55 被阅读0次

python学习中,有这样一个问题,列表的拷贝。当列表有嵌套列表时候,那么在进行复制拷贝的时候就会产生内列表的元素会一改全改,这样有时候会方便我们编程,但有时候却很不方便,所以,在嵌套列表进行拷贝时候就有深浅拷贝,下面我们来看看。

a = [1,2]
b = [3,4]
c = [a,b]
这时候 c = [[1,2],[3,4]]
对 c 进行拷贝
d = c.copy()
d 的元素与 c 相同。
id(c)    id(d)  是不相同的,这就说明,c 与 d 不是同一个列表。
现在我们修改 a 或 b 的值
c[0][0] = 5
此时查看 c 和 d ,发现 c 和 d 的值都变了,这是我们在查看id
id(c[0])   与 id(d[0])  发现id地址是相同的,所有 c 和 d 的内嵌列表内存地址是相同的,也就是说,是同同一个列表,无论怎么修改,都是会同时进行修改的,这就是列表的浅复制。
为了解决这个问题,我们引进 copy 模块
import copy
在执行上面的步骤
a = [1,2]
b = [3,4]
c = [a,b]
这时候 c = [[1,2],[3,4]]
对 c 进行拷贝
d = copy.deepcopy(c)
d 的元素与 c 相同。
id(c)    id(d)  是不相同的,这就说明,c 与 d 不是同一个列表。
对 a  或 b 进行修改,发现 c 或 d 不会在修改一个全改变了,这就是深复制。
此时查看 a 或 b 的内存地址,发现不一样了。进行了完全的拷贝。 

相关文章

  • python--深浅拷贝

    python学习中,有这样一个问题,列表的拷贝。当列表有嵌套列表时候,那么在进行复制拷贝的时候就会产生内列表的元素...

  • 2018-08-29

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

  • js的深浅拷贝

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

  • Python—浅拷贝与深拷贝

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

  • 深浅拷贝

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

  • 深浅拷贝

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

  • 深浅拷贝

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

  • 深浅拷贝

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

  • 深浅拷贝

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

  • 深浅拷贝

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

网友评论

      本文标题:python--深浅拷贝

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