Python中深浅复制
深浅复制一般在列表嵌套列表的时候易考虑.
即复制后的数据会因为原数据的值改变而改变或者复制后的数据改变原数据也会跟着改变.
让我们以实例来展示.
>>> a = [1,2,3]
>>> b = [4,5,a]
>>> id(a)
2122777098952
>>> id(b[2])
2122777098952
可以看到b[2]实际指向的就是a,改变a的值那么b[2]会跟着变化.同理改变b[2]的值,原a也发生改变.
>>> import copy
>>> c = b.copy()
>>> id(c[2])
2122777098952
使用copy复制为浅复制,如果原a发生改变那么c,b都会改变.
>>> c = b[:]
>>> id(c[2])
2122777098952
同样使用切片的方式也为浅复制.
>>> c = copy.deepcopy(b)
>>> id(c[2])
2122778556488