#深拷贝 #浅拷贝 #1 等号 # list1=[11,22,33,['a','b']] # list2=list1 # list1.append(44) # print(list1) # print(list2) #2 copy import copy # c=[11,22,33,['a','b']] # d=copy.copy(c) # c.append(44) # print(c) # print(d)#d不受影响,要会根据栈、堆分析 # # c=[11,22,33,['a','b']] # d=copy.copy(c) # c[3].append('c') # print(c)#[11, 22, 33, ['a', 'b', 'c']] # print(d)#[11, 22, 33, ['a', 'b', 'c']] #深拷贝 c=[11,22,33,['a','b']] d=copy.deepcopy(c) c[3].append('c') print(c)#[11, 22, 33, ['a', 'b', 'c']] print(d)#[11, 22, 33, ['a', 'b']]
浅拷贝:拷贝父对象,不会拷贝对象的内部的子对象。即拷贝列表name里面的一级元素的内存地址,不拷贝name里的小列表里的元素的内存地址。
深拷贝:copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。即name2不仅拷贝了name中一级元素
[11,22,33,['a','b']]的的内存地址,也拷贝了嵌套列表,
['a','b']里面的"a"和"b"的内存地址。