id求数据的内存地址
is判断是否是同一个内存空间
1.赋值,指向同一块内存空间
2.浅copy(当里面有可变数据类型时会导致混乱)
会开辟一个新的内存空间,但是存储的是之前数据的内存地址
a=[1,2,3,4,[1,2,3]]
b=a.copy() # a[:]
a.append(5)
print(a) #[1, 2, 3, 4, [1, 2, 3], 5]
print(b) #[1, 2, 3, 4, [1, 2, 3]]
a[4].append(4)
print(a) #[1, 2, 3, 4, [1, 2, 3, 4], 5]
print(b) #[1, 2, 3, 4, [1, 2, 3, 4]]
3.深copy(互相不影响)
可变的数据类型重新创建一份,不可变的数据类型公用
from copy import deepcopy
a=[1,2,3,4,[1,2,3]]
b=deepcopy(a)
a.append(5)
print(a) #[1, 2, 3, 4, [1, 2, 3], 5]
print(b) #[1, 2, 3, 4, [1, 2, 3]]
a[4].append(4)
print(a) #[1, 2, 3, 4, [1, 2, 3, 4], 5]
print(b) #[1, 2, 3, 4, [1, 2, 3]]
原文:https://www.cnblogs.com/pineapple-chicken/p/13235015.html