3,列表的 深 浅 copy

如果列表只有一层,深浅copy是一样一样的,没有什么区别,你修改了copy后的列表,copy前的列表并不会随之改变。

如果列表中嵌套这列表,这是你修改了copy后第二层列表里面的元素,copy前第二层列表里面的元素也随之修改,这是因为浅copy只copy了每个元素的地址指向,并没有将内容也copy

jlist = [1,2,3,4,5,6,7,8,[9,8,7]]

xlist = jlist.copy()

xlist[8][1] =800

print(jlist) 

 [1,2,3,4,5,6,7,8,[9,800,7]]

如果你想要修改copy后的list,copy前的list不随之修改的话,这样就要用的深copy,深copy是copy到每一层的元素,有多少层,copy多少层

import copy

jlist = [1,2,3,4,5,6,7,8,[9,8,7]]

xlist = copy.deepcopy(jlist)

xlist[8][1] =800

print(jlist)

 [1,2,3,4,5,6,7,8,[9,8,7]]

原文地址:https://www.cnblogs.com/MaDon/p/9150973.html