Python 的深淺拷貝 終於明白了
阿新 • • 發佈:2017-11-21
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 的深淺拷貝 終於明白了