标签:python 可变对象 对象 code pre deepcopy images ges 分享
浅拷贝:
a=[[1,2],3,4] b=a.copy() 这里的b只会拷贝a的第一层,即[[],2,3] 因为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 可变对象 对象 code pre deepcopy images ges 分享
原文地址:http://www.cnblogs.com/xiaoyaz/p/7610935.html