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相当于开辟了一块新的内存地址,
# 经过深拷贝后,原始对象和拷贝对象所有的元素地址都没有相同的了
当然还有另外两种拷贝方式,

浙公网安备 33010602011771号