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深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章