首页 > 编程语言 > 详细

Python之深浅拷贝

时间:2019-09-21 14:08:23      阅读:78      评论:0      收藏:0      [点我收藏+]

1.浅拷贝 shallow copy
s=[1,‘alex‘,‘alvin‘]
s2=s.copy()
print(s2)
s2[0]=22
print(s)
print(s2)
输出结果:
[1, ‘alex‘, ‘alvin‘]
[1, ‘alex‘, ‘alvin‘]
[22, ‘alex‘, ‘alvin‘]
使用copy方法,复制S2。修改S2,不会影响S的值

2.
s=[[1,2],‘alex‘,‘alvin‘]
s3=s.copy() # s3=s[:]也是浅拷贝
print(s3)
s3[1]=‘linux‘
print(s3)
print(s)

s3[0][1]=3
print(s3)
print(s)
输出结果
[[1, 2], ‘alex‘, ‘alvin‘]
[[1, 2], ‘linux‘, ‘alvin‘]
[[1, 2], ‘alex‘, ‘alvin‘]
[[1, 3], ‘linux‘, ‘alvin‘]
[[1, 3], ‘alex‘, ‘alvin‘]
修改S3里的元素-列表里的元素。也会影响S

赋值原理:

技术分享图片

 

 技术分享图片

 

 

 

 


3.
a=[1,2,3]
b=a
print(a)
print(b)
b[2]=4
print(a)
print(b)
注意:通过赋值,a和b会指向同一个地址。如果修改b这块内存中的某块地址,a也会跟着变化。

深浅拷贝可用于银行亲情账号绑定
浅拷贝 只拷贝第一层。
深拷贝 克隆一份

4.深拷贝
import copy
a=copy.deepcopy(b) b完全克隆a,并开辟一块内存空间

 

Python之深浅拷贝

原文:https://www.cnblogs.com/zd37/p/11562093.html

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