浅拷贝
可变类型浅拷贝
copy函数是浅拷贝,只对可变类型的第一层对象进行拷贝,对拷贝的对象开辟新的内存空间进行存储,不会拷贝对象内部的子对象。
# 1. 普通赋值
# a = [1, 2, 3]
# b = [11, 22, 33]
# c = [a, b]
#
# d = c
#
# print(id(d)) # 1792345732160
# print(id(c)) # 1792345732160
# 2. 浅拷贝
import copy
# a = [1, 2, 3]
# b = [11, 22, 33]
# c = [a, b]
#
# d = copy.copy(c)
#
# print(id(d)) # 1244787255040
# print(id(c)) # 1244787298880
# 3. 浅拷贝的深层数据
a = [1, 2, 3]
b = [11, 22, 33]
c = [a, b]
d = copy.copy(c)
print(id(a)) # 2489468023808
print(id(c[0])) # 2489468023808
print(id(d[0])) # 2489468023808
不可变类型浅拷贝
不可变类型进行浅拷贝不会给拷贝对象开辟新的内存空间,而只是拷贝了这个对象的引用。
# 4. 浅拷贝不可变类型
a = (1, 2, 3)
b = (11, 22, 33)
c = (a, b)
d = copy.copy(c)
print(id(c)) # 2073041534336
print(id(d)) # 2073041534336