- 使用copy,deepcopy前添加import copy
- b=a,表示b爲a的引用。a,b任一個改變,另一個會改變
- c=copy.copy(a) 淺拷貝。a,c爲2個對象,但a中的子對象,在copy過後,在c中仍然是引用
- d=copy.deepcopy(a) 深拷貝。a,d爲2個對象,與copy不同的是,a或者d中子對象改變後 ,不影響對方的子對象
import copy
a = [1, 2, 3, 4, ['a', 'b']]
b = a #賦值,傳對象的引用
c = copy.copy(a) #對象拷貝,淺拷貝
d = copy.deepcopy(a) #對象拷貝,深拷貝
a.append(5) #修改對象a
a[4].append('c') #修改對象a中的['a', 'b']數組對象
print 'a = ', a
print 'b = ', b
print 'c = ', c
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']]