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来说,两个是完全独立的,改变任意一个的任何元素(无论多少层),另外一个绝对不变

 

posted @ 2018-08-16 20:57  浅笨小孩  阅读(115)  评论(0编辑  收藏  举报