the day of python learning(深浅copy)
#赋值运算 # li = [1,2,3] # l2 = li #或者l2 = l1[:] # li.remove(1) # print(li,l2) #对于赋值运算中,li与l2指向的是同一个内存地址,所以他们是完全一样的 #copy浅拷贝 # l1 = [1,2,3] # l2 = l1.copy() # print(l1,l2) # print(id(l1),id(l2)) # l2.remove(1) # print(l1,id(l1)) #print(l2,id(l2)) #对于浅copy来说,第一层创建的是新的内存地址, # l1 = [1,2,3,[1,2,3]] # l2 = l1.copy() # l1[2] = 4 # print(l1,id(l1)) # print(l2,id(l2))#l1与l2不一样 # 而从第二层开始,指向的都是同一个内存地址, # 所以,对于第二层以及更深的层数来说,保存一致性 #copy深拷贝deepcopy # import copy # li = [1,2,3,[4,5,6]] # l2 = copy.deepcopy(li) # li[3][2] = 7 # print(li,l2) #对于深copy来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另外一个绝对不变