Python3 list 浅拷贝,深拷贝

46 阅读1分钟

list 浅拷贝,直接赋值形式,修改其中一个list值,两个 list 数据都会变化

list1 = [1, 2, 3, 4]
list2 = list1
print('list1 ', list1)  # list1  [1, 2, 3, 4]
print('list2 ', list2)  # list2  [1, 2, 3, 4]
del list2[0]
print('list1 ', list1)  # list1  [2, 3, 4]
print('list2 ', list2)  # list2  [2, 3, 4]

使用 copy.deepcopy() 实现深拷贝,修改一个 list 数据,其他 list 数据不变

import copy

list3 = [5, 6, 7, 8]
list4 = copy.deepcopy(list3)
print('list3 ', list3)  # list3  [5, 6, 7, 8]
print('list4 ', list4)  # list4  [5, 6, 7, 8]
del list4[0]
print('list3 ', list3)  # list3  [5, 6, 7, 8]
print('list4 ', list4)  # list4  [6, 7, 8]