美文网首页
关于Python的浅复制和深复制

关于Python的浅复制和深复制

作者: yytester | 来源:发表于2021-04-20 10:32 被阅读0次
  1. 浅复制使用copy.copy()函数,深复制使用copy.deepcopy()函数
  2. 创建的浅副本不会克隆子对象,副本和原对象不完全独立.
  3. 对象的深副本将递归克隆子对象,副本完全独立于原对象,但创建深副本的速度较慢.

代码

xs = [[1,2,3],[4,5,6],[7,8,9]]
ys = list(xs)  # 浅复制 , 也可以使用copy.copy()创建浅副本
xs.append(['new list']) #xs里添加一个新列表
print(ys)   # [[1, 2, 3], [4, 5, 6], [7, 8, 9]] ,  ys不变,仍然含有xs子对象的引用

xs[1][0] = 'XXX'  # 修改xs子对象
print(ys)   # [[1, 2, 3], ['XXX', 5, 6], [7, 8, 9]]   # xs的改动会反映在ys中,因为浅复制后,这两个列表共享相同的子对象.


import copy
xs = [[1,2,3],[4,5,6],[7,8,9]]
zs = copy.deepcopy(xs)  # 深复制
xs[1][0] = 'XXX'  # 修改xs子对象
print(zs)   #  [[1, 2, 3], [4, 5, 6], [7, 8, 9]] , zs不变.


Flutter 写的app, 需要源码可以私信~~

最好的笔记软件

相关文章

  • 拷贝与内存管理

    一、关于深拷贝和浅拷贝的总结 理解 本质上我认为区别在于复制是是指针复制(浅拷贝)还是复制到新的地址上(深拷贝) ...

  • Python底层|赋值 浅拷贝 深拷贝

    参考 python中的深拷贝和浅拷贝问题python的复制,深拷贝和浅拷贝的区别 结论 总体来说,赋值只是增加了一...

  • python赋值、浅拷贝和深拷贝

    简介   python中关于对象复制有三种类型:直接赋值、浅拷贝和深拷贝,他们既有联系又有区别。在python中,...

  • 深入浅出Python深拷贝浅拷贝

    所谓拷贝,就是复制。深拷贝,就是复制的比较多,浅拷贝,就是复制的比较少。在Python中,copy.copy可以完...

  • 关于Python的浅复制和深复制

    浅复制使用copy.copy()函数,深复制使用copy.deepcopy()函数 创建的浅副本不会克隆子对象,副...

  • Python列表赋值,复制,深拷贝以及5种浅拷贝详解

    Python列表赋值,复制,深拷贝以及5种浅拷贝详解 概述 在列表复制这个问题,看似简单的复制却有着许多的学问,尤...

  • 浅拷贝和深拷贝

    关于浅拷贝和深拷贝的介绍 浅拷贝 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。 ...

  • python关于深复制浅复制

    深复制浅复制均会重新分配一块内存地址,其区别在于深复制会递归遍历为每层都分配一个新的地址,而浅复制只分配最外层地址...

  • python中复制,浅拷贝,深拷贝

    python中包含复制 浅拷贝与深拷贝 1.复制 复制没有拷贝子对象,未开辟新内存空间,也没有产生新object,...

  • 深拷贝与浅拷贝的理解及常用方法

    深拷贝和浅拷贝的区别 首先深复制和浅复制只针对像 Object, Array 这样的复杂对象的。简单来说,浅复制只...

网友评论

      本文标题:关于Python的浅复制和深复制

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