zoukankan      html  css  js  c++  java
  • Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

    转自: http://greybeard.iteye.com/blog/1442259
    Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块。
    1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
    2. copy.deepcopy 深拷贝 拷贝对象及其子对象
    一个很好的例子:

     1     import copy  
     2     a = [1, 2, 3, 4, ['a', 'b']] #原始对象  
     3       
     4     b = a #赋值,传对象的引用  
     5     c = copy.copy(a) #对象拷贝,浅拷贝  
     6     d = copy.deepcopy(a) #对象拷贝,深拷贝  
     7       
     8     a.append(5) #修改对象a  
     9     a[4].append('c') #修改对象a中的['a', 'b']数组对象  
    10       
    11     print 'a = ', a  
    12     print 'b = ', b  
    13     print 'c = ', c  
    14     print 'd = ', d  

    输出结果为:

    a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    c = [1, 2, 3, 4, ['a', 'b', 'c']]
    d = [1, 2, 3, 4, ['a', 'b']]

    贴个图吧:

  • 相关阅读:
    F. Maximum White Subtree 树形dp*换根
    D
    E
    两圆相交板子
    lucass定理
    高精度求组合数
    康托展开与康托逆展开
    FFT变换
    Codeforces Round #625 Div. 1 Problem C
    E.Multiply Pollard_rho质因数分解
  • 原文地址:https://www.cnblogs.com/chushiyaoyue/p/5263389.html
Copyright © 2011-2022 走看看