深浅拷贝

深拷贝

  • 复制后的内容改变,原来的列表不受影响
  • copy.deepcopy()

浅拷贝

  • 复制后的内容改变,原来的列表也受影响
  • 只会复制顶层对象,不影响深层的可变数据类型
  • copy.copy()
import copy
num = [1,2,3,[1,2]]
num_new = copy.copy(num)
print(num_new)
num_new.append(5)
print(num)
print(num_new)
num_new[3][0] = 3
print(num)
print(num_new)


import copy
num = [1,2,3,[1,2]]
num_new = copy.deepcopy(num)
print(num_new)
num_new.append(5)
print(num)
print(num_new)
num_new[3][0] = :3
print(num)
print(num_new)
输出:
[1, 2, 3, [1, 2]]
[1, 2, 3, [1, 2]]
[1, 2, 3, [1, 2], 5]
[1, 2, 3, [3, 2]]
[1, 2, 3, [3, 2], 5] #改变列表中的列表,原列表跟着改变
[1, 2, 3, [1, 2]]
[1, 2, 3, [1, 2]]
[1, 2, 3, [1, 2], 5]
[1, 2, 3, [1, 2]]
[1, 2, 3, [3, 2], 5] #改变列表中的列表,原列表不改变
posted @ 2024-04-08 10:01  zenopan  阅读(2)  评论(0编辑  收藏  举报