深浅复制只有在列表嵌套列表的情况下讨论
如果想保留修改之前的数据,就可以使用列表的复制,但要注意列表嵌套情况下的问题
深浅复制
1、浅复制
>>> li = [1,2,3,[4,5,6]]
>>> ll=li.copy()
>>> ll
[1,2,3,[4,5,6]]
>>> id(li)
4517320
>>> id(ll) #对比复制前后两个列表的id,发现是不同的
52509704
>>> id(li[3])
494056544
>>> id(ll[3]) #对比复制前后两个列表的元素的id,却一样的
494056544
>>>
2、深复制
>>> bb = [1,2,3,[1,2,3]]
>>> import copy
>>> cc = copy.deepcopy(bb)
>>> cc
[1, 2, 3, [1, 2, 3]]
>>> id(bb)
52546440
>>> id(cc)
52474760
>>> id(bb[3])
52703496
>>> id(cc[3]) #这里说明,深复制是改变了所有,重新开辟内存空间储存成一个新的列表
52474184