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) print(a[4])
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']]
['a', 'b', 'c']
浅拷贝浅拷贝, a和b是一个独立的对象,但他们的子对象还是指向统一对象(是引用)意味着对原对象的子对象修改仍然同步
深度拷贝, 完全拷贝了父对象及其子对象,两者是完全独立的,对a做任何修改都不影响b(原对象的复制)