Trang tài liệu
Khóa học Python cho người mới bắt đầu
Chương 4: Danh sách (List)
Bài 8. Python - Sao chép Danh sách

Bài 8. Python - Sao chép Danh sách

Trong Python, một biến chỉ là một nhãn hoặc tham chiếu đến đối tượng trong bộ nhớ. Do đó, phép gán "lst1 = lst" đề cập đến cùng một đối tượng danh sách trong bộ nhớ. Hãy xem ví dụ sau:

lst = [10, 20]
print("lst:", lst, "id(lst):", id(lst))
lst1 = lst
print("lst1:", lst1, "id(lst1):", id(lst1))

Kết quả sẽ là:

lst: [10, 20] id(lst): 1677677188288
lst1: [10, 20] id(lst1): 1677677188288

Do đó, nếu chúng ta cập nhật "lst", nó sẽ tự động phản ánh trong "lst1". Thay đổi lst[0] thành 100

lst[0] = 100
print("lst:", lst, "id(lst):", id(lst))
print("lst1:", lst1, "id(lst1):", id(lst1))

Kết quả sẽ là:

lst: [100, 20] id(lst): 1677677188288
lst1: [100, 20] id(lst1): 1677677188288

Do đó, chúng ta có thể nói rằng "lst1" không phải là bản sao vật lý của "lst".

Sao chép một Danh sách Python

Lớp list của Python có một phương thức copy() để tạo một bản sao vật lý mới của một đối tượng danh sách.

Cú pháp

lst1 = lst.copy()

Đối tượng danh sách mới sẽ có một giá trị id() khác nhau.

Ví dụ về Sao chép Danh sách trong Python

Ví dụ 1

lst = [10, 20]
lst1 = lst.copy()
print("lst:", lst, "id(lst):", id(lst))
print("lst1:", lst1, "id(lst1):", id(lst1))

Kết quả sẽ là:

lst: [10, 20] id(lst): 1677678705472
lst1: [10, 20] id(lst1): 1677678706304

Mặc dù hai danh sách có cùng dữ liệu, chúng có các giá trị id() khác nhau, do đó chúng là hai đối tượng khác nhau và "lst1" là một bản sao của "lst".

Nếu chúng ta cố gắng sửa đổi "lst", nó sẽ không phản ánh trong "lst1". Hãy xem ví dụ sau:

Ví dụ 2

lst[0] = 100
print("lst:", lst, "id(lst):", id(lst))
print("lst1:", lst1, "id(lst1):", id(lst1))

Kết quả sẽ là:

lst: [100, 20] id(lst): 1677678705472
lst1: [10, 20] id(lst1): 1677678706304

Nếu bạn có bất kỳ câu hỏi hoặc cần thêm thông tin, hãy liên hệ với chúng tôi, chúng tôi luôn sẵn sàng giải đáp mọi thắc mắc của bạn! Chúc bạn thành công trong quá trình chinh phục Python!