import copyl1 = [10,'a1',[110,111],'ds',]l2 = copy.copy(l1) #浅拷贝print(l1)print(l2)l1[1] = 11 #改变L1的值l1[2][0] = 1111 #改变l1内嵌列表的值print(l1)print(l2)print(id(l1))print(id(l2))print(id(l1[2][0]))print(id(l2[2][0]))#[10, 'a1', [110, 111], 'ds']#[10, 'a1', [110, 111], 'ds']#通过下面的结果对比,发现浅拷贝对于内嵌多层数据类型的操作,如果多层数据类型值改变,浅拷贝的对象也会跟着改变#[10, 11, [1111, 111], 'ds']#[10, 'a1', [1111, 111], 'ds']
import copyl1 = [10,'a1',[110,111],'ds',]l2 = copy.deepcopy(l1)print(l1)print(l2)l1[1] = 11 #改变L1的值l1[2][0] = 1111 #改变l1内层数据的值print(l1)print(l2)print(id(l1))print(id(l2))print(id(l1[2][0]))print(id(l2[2][0]))#[10, 'a1', [110, 111], 'ds']#[10, 'a1', [110, 111], 'ds']#结合上面的例子进行对比发现,对于深层拷贝,内嵌多层的数据类型的值,被改变,不会影响到另一方拷贝或被拷贝的对象#[10, 11, [1111, 111], 'ds']#[10, 'a1', [110, 111], 'ds']