import copy
a = [1,2,3,4]
b = a # 赋值时, 把列表的引用传给b
print(id(a))
print(id(b))
print(a)
print(b)
b = copy.copy(a) # 对于可变类型变量, 浅拷贝会将引用和内容全部拷贝一份传给b,即递归所有
a.append(5)
print(id(a))
print(id(b))
print(a)
print(b)
a = (1,2,3,4)
b = a
print(id(a))
print(id(b))
print(a)
print(b)
b = copy.copy(a) # 对于不可变类型变量, 浅拷贝只将引用传给新变量
print(id(a))
print(id(b))
print(a)
print(b)
运行结果:
140718278173768
140718278173768
[1, 2, 3, 4]
[1, 2, 3, 4]
140718278173768
140718278192264
[1, 2, 3, 4, 5]
[1, 2, 3, 4]
140718302072248
140718302072248
(1, 2, 3, 4)
(1, 2, 3, 4)
140718302072248
140718302072248
(1, 2, 3, 4)
(1, 2, 3, 4)