浅谈深浅copy区别

Posted jb9527

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈深浅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
#以上为深复制,深复制,是完完全全的复制了一份,两个内存地址完全不同,没有任何关系。

 

以上是关于浅谈深浅copy区别的主要内容,如果未能解决你的问题,请参考以下文章

深浅拷贝和数列,变量的区别

Python高级语法-深浅拷贝-总结(4.2.1)

Python_深浅拷贝

java 深浅copy

is == id 的用法;代码块;深浅copy;集合

is == id 用法, 代码块,缓存机制,深浅copy,集合