python深浅拷贝

Posted 雷先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python深浅拷贝相关的知识,希望对你有一定的参考价值。

一:浅拷贝

import copy
l1 = [1, 2, 3, [4, 5, 6]]
l2 = copy.copy(l1)
l2[3][0] = 3  # 修改二级列表的元素
l2[1] = 1

print(l1)
print(l2)  

结果:

[1, 2, 3, [3, 5, 6]]
[1, 1, 3, [3, 5, 6]]

 

二级列表的会随着任意一方的修改而共同改变,l1 的 二级列表如果优先改变 那么 l2 的二级列表也会跟着改变,同理,l2 优先改变也是如此

另外,一级列表的数据是独立的,它会重新开辟一块内存空间并拷贝一级列表的数据元素,二级列表只是引用并不会拷贝

 

 

二:深拷贝

import copy
l1 = [1, 2, 3, [4, 5, 6]]
l2 = copy.deepcopy(l1)
l2[3][0] = 3  # 修改二级列表的元素
l2[1] = 1

print(l1)
print(l2)

#结果:

[1, 2, 3, [4, 5, 6]]
[1, 1, 3, [3, 5, 6]]



深拷贝是重新开辟内存空间并将数据完完全全的拷贝出来一份,l1和l2 不会互相影响

 










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

我要学python之深浅拷贝原理

Python 的深浅拷贝 终于明白了

python深浅拷贝

python 深浅拷贝,集合 ,小数据池 操作

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

Python深浅拷贝