zoukankan      html  css  js  c++  java
  • Python中的浅拷贝和深拷贝

    python中的浅拷贝和深拷贝是经常在面试中遇到的问题。

    • 浅拷贝(copy): 拷贝父对象,不会拷贝对象的内部的子对象
    • 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

    一、赋值


    我们先看看赋值的实例

    a = {1:['a']}
    b = a
    a[1].append('b')
    

    很明显,赋值引用,a 和 b 都指向同一个对象。

    二、浅拷贝实例


    import copy
    
    a = {1:['a']}
    b = a.copy()
    a[1].append('b')
    

    可以看到,浅复制不会拷贝字典中的list对象。当我们向a的list中添加值时,b中的也变了。

    三、深拷贝实例:


    import copy
    
    a = {1:['a']}
    b = copy.deepcopy(a)
    a[1].append('b')
    

    可以看到,他们的对象和子对象都是相互独立的,当我们向a的list中添加值时,b不会受影响。

  • 相关阅读:
    博弈论嘻嘻
    cf之kmp匹配稍稍改一改
    点分治开始!
    后缀数组
    cf之 前缀和差分
    AJAX 数据库实例
    常用jar包用途
    cxf客户端所需最少jar包
    Dbutis
    dbutils入门
  • 原文地址:https://www.cnblogs.com/selfcs/p/12610698.html
Copyright © 2011-2022 走看看