python的深浅拷贝

在python中,对象的赋值就是简单的引用,a = [1,2,3], b=a, 在上述情况下,a和b是一样的,他们指向同一片内存,b不过是a的别名,是引用,我们可以使用b is a 去判断,返回True

b = [1,2,3]
a = b
print(b is a)

 

 

浅拷贝:相当于复制一个杯子,更改name的内容,不会对name_new造成影响。但是如果有列表嵌套的情况,copy后,内部的列表还是处于共享的状态

深拷贝:深copy相当于完全copy一份数据,比较吃内存

浅拷贝案例

如下代码:

name = [1,3,4,[3,4]]
name_new = name.copy()
name[3][0] = 2
print(name)
print(name_new)

返回结果

 

 深拷贝案例:

深拷贝需要依赖copy包

import copy

name = [1,3,4,[3,4]]
name_new = copy.deepcopy(name)
name[3][0] = 2
print(name)
print(name_new)

 

posted @ 2022-11-12 22:44  powfu  阅读(85)  评论(0)    收藏  举报