1. 程式人生 > >Python 的深淺拷貝 終於明白了

Python 的深淺拷貝 終於明白了

python 深淺拷貝

python 深淺拷貝不之前一直不太理解,只是概念性的理解像 1,2 所說,敲完下面代碼希望你可以理解。

1、copy.copy 淺拷貝 只拷貝父對象,不會拷貝對象的內部的子對象。

2. copy.deepcopy 深拷貝 拷貝對象及其子對象

>>> import copy
>>> l1 = [1,3,5,[‘a‘,‘b‘,‘c‘]]
>>> a = l1
>>> b = copy.copy(a) # 淺拷貝
>>> c = copy.deepcopy(a) # 深拷貝
>>> l1.append(7)
>>> l1[3].append(‘d‘)
>>> print ‘l1=‘,l1
l1= [1, 3, 5, [‘a‘, ‘b‘, ‘c‘, ‘d‘], 7]
>>> print ‘a=‘,a
a= [1, 3, 5, [‘a‘, ‘b‘, ‘c‘, ‘d‘], 7]
>>> print ‘b=‘,b
b= [1, 3, 5, [‘a‘, ‘b‘, ‘c‘, ‘d‘]] 
>>> print ‘c=‘,c
c= [1, 3, 5, [‘a‘, ‘b‘, ‘c‘]] # 深拷貝數據沒有變化

備註:深淺拷貝的區別在於嵌套部分,淺拷貝和被拷貝對象的嵌套部分的元素是同一個,

一個改變其他的也會改變,列入上文實例 l1 = [1,3,5,[‘a‘,‘b‘,‘c‘]] ,嵌套部分是 [‘a‘,‘b‘,‘c‘], 這裏的數據發生變化,淺拷貝也會發生變化。


更多詳細參考博客 http://blog.csdn.net/jerry_1126/article/details/41852591

本文出自 “sdsca” 博客,請務必保留此出處http://sdsca.blog.51cto.com/10852974/1983766

Python 的深淺拷貝 終於明白了