python =赋值、copy、deep copy

来源:互联网 发布:买钢琴 知乎 编辑:程序博客网 时间:2024/06/18 06:41
import copya = [1,2,3,4]b = a               # 赋值时, 把列表的引用传给bprint(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 = aprint(id(a))print(id(b))print(a)print(b)b = copy.copy(a)    # 对于不可变类型变量, 浅拷贝只将引用传给新变量print(id(a))print(id(b))print(a)print(b)

运行结果:

140718278173768140718278173768[1, 2, 3, 4][1, 2, 3, 4]140718278173768140718278192264[1, 2, 3, 4, 5][1, 2, 3, 4]140718302072248140718302072248(1, 2, 3, 4)(1, 2, 3, 4)140718302072248140718302072248(1, 2, 3, 4)(1, 2, 3, 4)