首页 > 编程语言 > 详细

python深浅拷贝

时间:2018-07-30 13:13:44      阅读:137      评论:0      收藏:0      [点我收藏+]

一:浅拷贝

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深浅拷贝

原文:https://www.cnblogs.com/leixiansheng6f6/p/9389824.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!