浅谈深浅copy区别

浅copy:外层内存地址改变,里边内存地址不变,共享内存地址。

source= [1,2,3,4]
target = source.copy()

print(id(target))  #结果:140651869398792
print(id(source))  #结果:140651866735496

print(id(target[0])) #结果:10964896
print(id(source[0])) #结果:10964896

#以上为浅复制,可以得出结论,浅复制只是外壳地址不同即门牌号不同,里面的内存享有相同的内存地址。

深copy:完完全全复制了一份,两个内存地址完全不同,没有任何关系。

import copy
source = [[1,2],[3,4]]
target = copy.deepcopy(source)

print(id(source)) #结果:140019484332936
print(id(target)) #结果:140019486996232

print(id(source[1])) #结果:139931082163912
print(id(target[1])) #结果:139931184332616
#以上为深复制,深复制,是完完全全的复制了一份,两个内存地址完全不同,没有任何关系。

猜你喜欢

转载自www.cnblogs.com/jb9527/p/10551425.html