美文网首页
Python之深浅拷贝

Python之深浅拷贝

作者: 互联网中的一个咸鱼 | 来源:发表于2019-08-21 21:34 被阅读0次

个人认为这个知识点比较重要,所以单独做了一个文章

Python中的浅拷贝就是对引用的拷贝,深拷贝就是对引用的拷贝,深拷贝就是对对象资源的拷贝

对赋值的认识

1.赋值是将一个对象的地址赋值给一个变量,让变量指向该地址
2.修改不可变对象(str,tupel)需要开辟新的空间
3.修改可变对象(list)不需要开辟新的空间

例如 a=3

对于数字和字符串

深浅拷贝都一样,数字和字符串在内存中使用的都是同一个内存地址


image

对于字典、列表、元组等其他类型的拷贝

赋值

image

结论:对于赋值,字典、列表、元组等其他类型用的内存地址不会变化。

浅拷贝

image

结论:所以对于浅拷贝,字典、列表、元组等类型,它们只拷贝第一层地址。

深拷贝

进行深拷贝时,字典里面的第一层和里面嵌套的地址都已经变了。对于深拷贝,它会拷贝多层,将第二层的列表也拷贝一份,如果还有第三层嵌套,那么第三层的也会拷贝,但是对于里面的最小元素,比如数字和字符串,这里就是“wu”,123,“alex”,678之类的,按照python的机制,它们会共同指向同一个位置,它的内存地址是不会变的

image
结论:对于深拷贝,字典、列表、元组等类型,它里面嵌套多少层,就会拷贝多少层出来, 但是最底层的数字和字符串地址不变

来源于https://zhuanlan.zhihu.com/p/25221086

相关文章

  • Python之深浅拷贝

    个人认为这个知识点比较重要,所以单独做了一个文章 Python中的浅拷贝就是对引用的拷贝,深拷贝就是对引用的拷贝,...

  • python之深浅拷贝

    python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果,其实这个...

  • Python深浅拷贝

    深浅拷贝 首先来个准备知识: list1 = ['我爱你','中国','亲爱的母亲'] list2 = list1...

  • python 深浅拷贝

  • Python深浅拷贝

    在python中,对象赋值实际上是对象的引用。当创建一个对象,然后把它赋给另一个变量的时候,python并没有拷贝...

  • Python深浅拷贝

    预备知识一——python的变量及其存储 在详细的了解python中赋值、copy和deepcopy之前,我们还是...

  • Python深浅拷贝

    导入模块import copy names = ['lilei','hanmei',['lll','rrrr']]...

  • python深浅拷贝

    最近在复习python相关的基础,然后想到了曾经面试遇到过深浅拷贝得问题,我想对于初学者来说,还是很有必要去学习的...

  • python深浅拷贝

  • Python深浅拷贝

    变量赋值 浅拷贝 只复制最顶层的列表

网友评论

      本文标题:Python之深浅拷贝

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