Trong Python, có một mô-đun được gọi là sao chép . Sử dụng mô-đun này, chúng tôi có thể thực hiện sao chép sâu và sao chép nông. Trong python, các câu lệnh gán không sao chép các đối tượng. Chúng tạo ra một ràng buộc giữa mục tiêu và đối tượng chính.
Để sử dụng mô-đun này, chúng ta nên nhập nó bằng cách sử dụng -
nhập bản sao
Method copy.copy (x)
Phương thức này được sử dụng để tạo một bản sao nông của đối tượng x. Đối với bản sao cạn, một tham chiếu của một đối tượng được sao chép sang một đối tượng khác. Vì vậy, nếu có bất kỳ thay đổi nào trên tham chiếu được sao chép, nó sẽ thay đổi nội dung của đối tượng chính.
Phương thức copy.deepcopy (x)
Phương thức này được sử dụng để tạo một bản sao sâu của đối tượng x. Đối với bản sao sâu, một đối tượng riêng lẻ được tạo bằng cách lấy dữ liệu từ đối tượng chính. Vì vậy, nếu có bất kỳ thay đổi nào trên tham chiếu đã sao chép, đối tượng chính sẽ vẫn như cũ.
Mã mẫu
import copymy_mat =[[11,22,33], [44,55,66], [11,22,33]] print ('Matrix Before Updation:' + str (my_mat)) new_mat =copy.copy (my_mat) # Tạo một bản sao ngắn và cập nhật trên objectnew_mat đã sao chép [2] [0] =77new_mat [2] [1] =88new_mat [2] [2] =99print ('Ma trận Sau khi Cập nhật:' + str (my_mat)) #Original Matrix Updatedmy_mat =[[11,22,33], [44,55,66], [11,22,33]] new_mat_deep =copy.deepcopy (new_mat) print ('\ nMatrix Trước khi Cập nhật:' + str ( my_mat)) new_mat_deep [2] [0] =77new_mat_deep [2] [1] =88new_mat_deep [2] [2] =99print ('Ma trận sau khi cập nhật:' + str (my_mat)) # Ma trận gốc không đổi dấu ('Ma trận mới:'+ str (new_mat_deep)) # Ma trận gốc không thay đổi
Đầu ra
Ma trận trước khi cập nhật:[[11, 22, 33], [44, 55, 66], [11, 22, 33]] Ma trận sau khi cập nhật:[[11, 22, 33], [44, 55, 66], [77, 88, 99]] Ma trận trước khi cập nhật:[[11, 22, 33], [44, 55, 66], [11, 22, 33]] Ma trận sau khi cập nhật:[[11, 22, 33], [44, 55, 66], [11, 22, 33]] Ma trận mới:[[11, 22, 33], [44, 55, 66], [77, 88, 99]]