Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Hàm List copy() trong Python
Trong bài này ta sẽ tìm hiểu phương thức list copy() trong Python, phương thức này có công dụng trả về một bản sao thô của List.
1. Cú pháp list copy()
Trước tiên bạn hãy xem cú pháp của phương thức này.
new_list = list.copy()
Phương thức này không có tham số truyền vào, nhiệm vụ của nó đơn giản chỉ là trả về một bản sao của list, nên thiết nghĩ liệu nó có cần thiết không? Rất cần thiết bởi vì ý nghĩa của nó là trả về một bản sao thô, tức là mọi thay đổi ở bản sao sẽ không ảnh hưởng tới bản gốc.
Giá trị trả về: Trả về list hiện tại.
Bài viết này được đăng tại [free tuts .net]
Hãy thử nghiệm với một ví dụ về việc copy nhưng bằng toán tử =
nhé.
old_list = [1, 2, 3] new_list = old_list # add element to list new_list.append('a') print('New List:', new_list ) print('Old List:', old_list )
Nếu chạy chương trình này thì cả new_list à old_list đều thay đổi, bởi vì cả hai đều trỏ đến cùng một địa chỉ trên bộ nhớ. Kết quả như sau:
Old List: [1, 2, 3, 'a'] New List: [1, 2, 3, 'a']
Nếu bạn muốn khi thay đổi ở old_list mà không ảnh hưởng tới new_list thì sử dụng phương thức copy.
old_list = [1, 2, 3] new_list = old_list.copy() # add element to list new_list.append('a') print('New List:', new_list ) print('Old List:', old_list )
Chạy lên kết quả sẽ như sau:
New List: [1, 2, 3, 'a'] Old List: [1, 2, 3]
2. Ví dụ với list copy()
Sau đây là một ví dụ khác với phương thức này.
# mixed list list = ['cat', 0, 6.7] # copying a list new_list = list.copy() # Adding element to the new list new_list.append('dog') # Printing new and old list print('Old List: ', list) print('New List: ', new_list)
Kết quả:
Old List: ['cat', 0, 6.7] New List: ['cat', 0, 6.7, 'dog']
Ngoài ra bạn cũng có thể sử dụng toán tử Slicing để copy một list.
# mixed list list = ['cat', 0, 6.7] # copying a list using slicing new_list = list[:] # Adding element to the new list new_list.append('dog') # Printing new and old list print('Old List: ', list) print('New List: ', new_list)
Chạy lên kết quả vẫn như trên.