- 使用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']]