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.

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.

Nguồn: freetuts.net