码迷,mamicode.com
首页 > 编程语言 > 详细

python深浅拷贝

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

标签:print   优先   也会   port   epc   深浅拷贝   style   列表   内存   

一:浅拷贝

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

标签:print   优先   也会   port   epc   深浅拷贝   style   列表   内存   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!