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

Python深浅拷贝

时间:2017-09-29 16:37:30      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:python   可变对象   对象   code   pre   deepcopy   images   ges   分享   

浅拷贝:

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

b=a.copy()

这里的b只会拷贝a的第一层,即[[],23]

因为a[0]是一个列表,可变对象,所以b copy的只是列表[]的内存地址,而不是[1,2]的内存地址。

如果修改[1,2]则a,b都会变,但是如果只修改2,3,只有一个变

 

import copy 
a=[[1,2],3,4]
b=copy.copy(a)

 

技术分享

 

b[0][0]=9

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

print(a)  #[[9,2],3,4]

技术分享

 

深拷贝

import copy

a=[[1,2],3,4]
b=copy.deepcopy(a)   #b=[[[1,2],3,4]]
b[
0][0]=9
print(a)
print(b)

技术分享

 

不是深浅拷贝

a=[[1,2],3,4]
b=a
b[2]=9   #b指向a的那列表
print(a)
print(b)

 技术分享

 

 



 

Python深浅拷贝

标签:python   可变对象   对象   code   pre   deepcopy   images   ges   分享   

原文地址:http://www.cnblogs.com/xiaoyaz/p/7610935.html

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