4.深拷贝和浅拷贝
#深拷贝 #浅拷贝 #(1)等号 # list1 = [11,22,33,['a','b']] # list2 = list1 # list1.append(44) # print(list1,list2,id(list1),id(list2)) # [11, 22, 33, ['a', 'b'], 44] [11, 22, 33, ['a', 'b'], 44] 43425416 43425416 #(2)浅拷贝 copy # import copy # c = [11,22,33,['a','b']] # d = copy.copy(c) # c.append(44) # c[3].append('c') # print(c,d,id(c),id(d)) # #[11, 22, 33, ['a', 'b', 'c']] [11, 22, 33, ['a', 'b']] 43803848 43800456 # print(id(c[3]),id(d[3])) # #43738248 43738248 # #深拷贝 deepcopy import copy c = [11,22,33,['a','b']] d = copy.deepcopy(c)# c.append(44) c[3].append('c') print(c,d,id(c),id(d)) #[11, 22, 33, ['a', 'b', 'c'], 44] [11, 22, 33, ['a', 'b']] 43931272 43933640 print(id(c[3]),id(d[3])) #43929800 43931464 ''' 等号:属于浅拷贝,不改变id地址,所以改变一个变量另外一个变量也会改变 浅拷贝:第一层数据的id号会改变,单数数据里面的id号不会改变,所以一个变量改变,另外一个变量不会改变, 但是第一个变量的更深的数据改变时,另外一个变量对应的数据会改变吧 深拷贝deepcopy:会改变id号,包括元素里面的元素的id号,所以一个变量改变,另外一个变量不会改变(所有数据) '''