copy: 浅拷贝
List1 = [1,2,3,[4,5,6]]
List2 = List1.copy()
List2[-1][0] = 7
print(List1)
print(List2)
执行结果如下:
[1, 2, 3, [7, 5, 6]]
[1, 2, 3, [7, 5, 6]]
deepcopy:深拷贝
import copy
List1 = [1,2,3,[4,5,6]]
List2 = copy.deepcopy(List1)
List2[-1][0] = 7
print(List1)
print(List2)
执行结果如下:
[1, 2, 3, [4, 5, 6]]
[1, 2, 3, [7, 5, 6]]
易错点
import copy
l1 = [1,2,3]
l2 = [l1,l1,l1]
l3 = copy.deepcopy(l2)
l3[0][0] = 5
print(l3)
执行结果如下:
[[5, 2, 3], [5, 2, 3], [5, 2, 3]]
结果是不是有点出乎意料呢,哈哈
接下来改为如下形式:
import copy
l1 = [1,2,3]
l2 = [l1[:],l1[:],l1[:]]
l3 = copy.deepcopy(l2)
l3[0][0] = 5
print(l3)
执行结果:
[[5, 2, 3], [1, 2, 3], [1, 2, 3]]
还挺有意思,哈哈,希望能帮到你