python高阶2 深拷贝和浅拷贝-01

浅拷贝拷贝之后的数据指向的是同一地址

a = [11,22,33]
b =  a
    
print(id(a))
print(id(b))

运行结果如下,可以看到a和b的地址是一致的

深拷贝使用的是copy模块的deepcopy方法

import copy
a = [11,22,33]
b =  a
c = copy.deepcopy(a)
    
print(id(a))
print(id(b))
print(id(c))

a.append(34)
print(a)
print(b)
print(c)

运行结果如下:

可以看到深拷贝是重新在内存中分配一块地址,并且地址中的数据和被拷贝的数据是一致的

总结一下:

当数据需要不能被原始数据影响的时候需要使用deepcopy也就是深拷贝

当数据的原始数据不会更改,这时候可以使用浅拷贝

原文地址:https://www.cnblogs.com/manaizhuang/p/11054489.html