首页 > 其他 > 详细

深浅copy

时间:2020-07-04 16:07:25      阅读:41      评论:0      收藏:0      [点我收藏+]

id求数据的内存地址

is判断是否是同一个内存空间

 

1.赋值,指向同一块内存空间

 

2.浅copy(当里面有可变数据类型时会导致混乱)

会开辟一个新的内存空间,但是存储的是之前数据的内存地址

a=[1,2,3,4,[1,2,3]]

b=a.copy()   # a[:]

a.append(5)

print(a) #[1, 2, 3, 4, [1, 2, 3], 5]

print(b) #[1, 2, 3, 4, [1, 2, 3]]

 

a[4].append(4)

print(a) #[1, 2, 3, 4, [1, 2, 3, 4], 5]

print(b) #[1, 2, 3, 4, [1, 2, 3, 4]]

 

3.深copy(互相不影响)

可变的数据类型重新创建一份,不可变的数据类型公用

from copy import deepcopy

a=[1,2,3,4,[1,2,3]]

b=deepcopy(a)

a.append(5)

print(a) #[1, 2, 3, 4, [1, 2, 3], 5]

print(b) #[1, 2, 3, 4, [1, 2, 3]]

 

a[4].append(4)

print(a) #[1, 2, 3, 4, [1, 2, 3, 4], 5]

print(b) #[1, 2, 3, 4, [1, 2, 3]]

深浅copy

原文:https://www.cnblogs.com/pineapple-chicken/p/13235015.html

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