Python深浅拷贝
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python深浅拷贝相关的知识,希望对你有一定的参考价值。
浅拷贝:
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深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章