python学习之路:二

一、关于浅copy和深copy

先导入包 import copy

调用copy:

例如有个person = ["name",["money",100]]

>>>p1=copy.copy(person)       //浅copy

>>>p2=copy.copy(person)   //浅copy

>>>p1[0]="xiaohong"

>>>p2[0]="xiaogang"

>>>p1[1][1]=10

>>>print(p1)

>>>print(p2)

这时候输出的值是

>>>person = ["xiaohong",["money",50]]

>>>person = ["xiaogang",["money",50]]

这就相当于夫妻共有账户,一方把钱改变,账户的钱会改变。//我个人的理解是,只复制了表面上的一层,没有涉及到内存地址的改变

再来讲讲深copy

稍微改下代码

>>>person = ["name",["money",100]]

>>>p1=copy.deepcopy(person)       //深copy

>>>p2=copy.deepcopy(person)   //深copy

>>>p1[0]="xiaohong"

>>>p2[0]="xiaogang"

>>>p1[1][1]=10

>>>print(p1)

>>>print(p2)

这时候输出的值就是

>>>person = ["xiaohong",["money",50]]

>>>person = ["xiaogang",["money",100]]

这就相当于私有账户,有一方数目更改,但不影响另一方   //个人理解是,这个copy是copy了内存地址,

//浅copy相当于开辟了一块新的内存地址,

# 经过深拷贝后,原始对象和拷贝对象所有的元素地址都没有相同的了

当然还有另外两种拷贝方式,

posted @ 2019-11-15 17:35  元芳骑蚂蚁  阅读(104)  评论(0)    收藏  举报