在Python中,有一个名为copy的模块。使用此模块,我们可以执行深层复制和浅层复制。在python中,赋值语句不复制对象。它们在目标和主要对象之间创建绑定。
要使用此模块,我们应该使用-导入它
import copy
此方法用于创建对象x的浅表副本。对于浅表复制,将一个对象的引用复制到另一个对象。因此,如果复制的引用上有任何更改,它将更改主对象的内容。
此方法用于创建对象x的深层副本。对于深层复制,通过从主对象获取数据来创建单个对象。因此,如果复制的引用上有任何更改,则主要对象将保持不变。
import copy my_mat = [[11,22,33],[44,55,66],[11,22,33]] print('Matrix Before Updation: ' + str(my_mat)) new_mat = copy.copy(my_mat) #Make a shallow copy and update on copied object new_mat[2][0] = 77 new_mat[2][1] = 88 new_mat[2][2] = 99 print('Matrix After Updation: ' + str(my_mat)) #Original Matrix Updated my_mat = [[11,22,33],[44,55,66],[11,22,33]] new_mat_deep = copy.deepcopy(new_mat) print('\nMatrix Before Updation: ' + str(my_mat)) new_mat_deep[2][0] = 77 new_mat_deep[2][1] = 88 new_mat_deep[2][2] = 99 print('Matrix After Updation: ' + str(my_mat)) # Original Matrix unchanged print('New Matrix: ' + str(new_mat_deep)) # Original Matrix unchanged
输出结果
Matrix Before Updation: [[11, 22, 33], [44, 55, 66], [11, 22, 33]] Matrix After Updation: [[11, 22, 33], [44, 55, 66], [77, 88, 99]] Matrix Before Updation: [[11, 22, 33], [44, 55, 66], [11, 22, 33]] Matrix After Updation: [[11, 22, 33], [44, 55, 66], [11, 22, 33]] New Matrix: [[11, 22, 33], [44, 55, 66], [77, 88, 99]]