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

Python之深浅拷贝

时间:2019-09-21 12:37:06      阅读:76      评论:0      收藏:0      [点我收藏+]

标签:元素   lin   深浅拷贝   结果   hal   bsp   python   pytho   code   

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

标签:元素   lin   深浅拷贝   结果   hal   bsp   python   pytho   code   

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

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