编程语言
首页 > 编程语言> > python中的浅拷贝,深拷贝

python中的浅拷贝,深拷贝

作者:互联网

直接引用,间接引用

# 1.列表存储的是索引对应值的内存地址,值会单独的开辟一个内存空间
list = ["a","b"]
内存里面存储的就是list[0],list[1],也就是分别存储的是0,1索引 以及"a","b"的内存地址,这个值"a"会单独的开辟一个内存空间
# 2.字典存储的是key对应值的内存地址
# 总结:容器都是间接引用的

可变和不可变类型

# 可变类型:值改变的情况下,id(内存地址)不变;说明改的是原值
# 这里说的值,是堆区里面内存地址对应的值
# 不可变类型:值改变的情况下,id也变了

浅拷贝,深拷贝

# 浅拷贝,对于容器内可变类型的值改变后,原来容器内的值也会跟着改变
# 深拷贝,改了copy之后的容器,原容器不会发生变化
# 若容器内存储的都是不可变类型,用浅拷贝可以;如果容器内存储的是可变类型的那就要使用深拷贝
# 浅拷贝,容器.copy()
# 深拷贝,import copy     copy.deepcopy()

进制

标签:容器,存储,copy,python,list,拷贝,内存地址
来源: https://www.cnblogs.com/xiaomengniu/p/16559632.html