1. 程式人生 > >python的深拷貝[copy.deepcopy()]與淺拷貝[copy.copy()]

python的深拷貝[copy.deepcopy()]與淺拷貝[copy.copy()]

Python中的物件之間賦值時是按引用傳遞的,如果需要拷貝物件,需要使用標準庫中的copy模組。

  1. copy.copy 淺拷貝 只拷貝父物件,不會拷貝物件的內部的子物件。
  2. copy.deepcopy 深拷貝 拷貝物件及其子物件
    >>> import copy
    >>> a = [1,2,3,4,['a','b']]  #原始物件
    
    >>> b = a  #賦值,傳物件的引用
    
    >>> c = copy.copy(a)
    
    >>> d = copy.deepcopy(a)
    
    >>> a.append(5)
    >>> a[4].append('c')
    
    >>> print 'a=',a
    a= [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    >>> print 'b=',b
    b= [1, 2, 3, 4, ['a', 'b', 'c'], 5]
    >>> print 'c=',c
    c= [1, 2, 3, 4, ['a', 'b', 'c']]
    >>> print 'd=',d
    d= [1, 2, 3, 4, ['a', 'b']]

     

文章出處:https://www.cnblogs.com/Richardzhu/p/4723750.html