Python深拷贝浅拷贝

Python深拷贝浅拷贝

  • 浅拷贝(copy)

    • 浅拷贝是对于一个对象的顶层拷贝
      通俗的理解是:拷贝了引用,并没有拷贝内容
      浅拷贝的顶层拷贝
  • 深拷贝(deepcopy)

    • 深拷贝是对于一个对象所有层次的拷贝(递归),会开辟一个内存空间存储拷贝内容。将对象中多有层次都拷贝一份,a改变时,d中的a不会改变。
      深拷贝

注意点

  • 浅拷贝对不可变类型和可变类型的copy不同
    • copy.copy对于可变类型,会进行浅拷贝
    • copy.copy对于不可变类型,不会拷贝,仅仅是指向

浅拷贝和深拷贝的不同点

  • 如果用copy.copy、deepcopy对一个全部都是不可变类型的数据进行拷贝,那么他们的结果相同,都是引用指向

  • 如果拷贝的是一个拥有 可变类型 的不可变类型的数据,即元组是最顶层,那么deepcopy依然是深拷贝而copy.copy还是指向
    浅拷贝和深拷贝的不同点

赋值语句在python是增加一个引用
赋值语句
字符串切片与copy.copy一样属于浅拷贝
这里写图片描述

字典中的拷贝也是引用指向
这里写图片描述

猜你喜欢

转载自blog.csdn.net/yzyggu/article/details/81705417