# 引用:x,y 指向同一对象
# 浅拷贝:x,y独立,子对象引用
# 深拷贝:x,y独立,子对象也独立
print("---------赋值引用---------")
# 赋值引用 ,
x = [1,2,3]
y = x
x.append(5)
x[0] = 0
print(x)
print(y)
print("---------浅拷贝---------")
# 浅拷贝,第一层
x = [1,2,3]
y=x.copy()
# 原对象 独立, 子对象引用,但这里 无子对象
x.append(5)
x[0] = 0
print(x)
print(y)
# 浅拷贝,第二层
x = [[1,2,3],[4,5,6],[7,8,9]]
y = x.copy()
# 原对象独立
x.append([3,2,1])
# 子对象 引用
x[0][0] = 0
print(x)
print(y)
# 浅拷贝,切片
x = [1,2,3]
y=x[:]
x.append(5)
x[0] = 0
print(x)
print(y)
# 浅拷贝,切片
x = [[1,2,3],[4,5]]
y=x[:]
x.append(6)
x[0][0] = 0
print(x)
print(y)
print("---------深拷贝---------")
import copy
# 深拷贝
x = [[1,2,3],[4,5]]
y=copy.deepcopy(x)
x.append(6)
x[0][0] = 0
print(x)
print(y)
图解Python深拷贝和浅拷贝
2024-05-03 22:18:01 36 阅读