1. Sao chép List trong Python

Trong Python, bạn không thể sử dụng phép toán gán listA  = listB. Bởi lẽ, listA sẽ chỉ là tham chiếu đến listB và các thay đổi được thực hiện bởi listB cũng sẽ tự động được thực hiện trong listA. Nói ngắn ngọn lại thì khi gán listA = listB, nếu listB thay đổi thì listA cũng sẽ thay đổi giống listB.

Vì vậy, để sao chép hoàn toàn độc lập các phần tử của listB sang listA trong Python cung cấp cho chúng ta một phương thức đó là copy() để làm điều này. Khi sử dụng phương thức copy() thì khi listB thay đổi sẽ không làm ảnh hưởng đến listA (ngược lại với việc gán 2 List bằng phép gán bằng “=”)

Ví dụ dưới đây sử dụng phương thức copy() để sao chép các phần tử của listB sang listA như sau:

# Khai bao listA khong co phan tu
listA = []
print("listA ban dau: {0}".format(listA))

# Khai bao listB gom cac phan tu
listB = ["oto", "xe may", "may bay", "tau dien", "xe dap"]

# Copy cac phan tu listB sang listA bang phuong thuc copy()
listA = listB.copy()

# Hien thi cac phan tu cua listA
print("listA sau khi coppy tu listB:")
print(listA)

Ngoài sử dụng phương thức copy() để tạo ra một bản sao từ một List. Ta còn có thể sử dụng thêm một phương thức khác để tạo bản sao đó là phương thức list() có sẵn trong Python.

# Khai bao listA khong co phan tu
listA = []
print("listA ban dau: {0}".format(listA))

# Khai bao listB gom cac phan tu
listB = ["oto", "xe may", "may bay", "tau dien", "xe dap"]

# Copy cac phan tu listB sang listA bang phuong thuc list()
listA = list(listB)

# Hien thi cac phan tu cua listA
print("listA sau khi coppy tu listB:")
print(listA)

Kết quả:

listA ban dau: []
listA sau khi coppy tu listB:
[‘oto’, ‘xe may’, ‘may bay’, ‘tau dien’, ‘xe dap’]

2. Nối List trong Python

Có một nhiều cách để nối hoặc nối hai hoặc nhiều List trong Python. Một trong những cách dễ nhất là sử dụng toán tử cộng “+” để nối List.

Nếu bạn cần tìm một phương thức có sẵn để nối hai hay nhiều List trong Python thì phương thức này chính là extend()

Ví dụ nối chuỗi đơn giản từ listB vào listA sử dụng toán tử cộng “+” như sau:

# Khai bao listA va listB
listA = ["oto", "xe may", "may bay", "tau dien", "xe dap"]
listB = ["tau ngam", "xe hoi", "tau hoa", "truc thang"]

# Hien thi listA ban dau
print("ListA ban dau")
print(listA)

# Hien thi listB
print("ListB ban dau")
print(listB)

# Su dung toan tu cong "+" de noi hai list
listA = listA + listB

# Hien thi ket qua listA sau khi noi listB
print("ListA sau khi noi them listB ")
print(listA)

Hoặc có thể sử dụng phương thức extend() để nối hai List trên với nhau như sau:

# Khai bao listA va listB
listA = ["oto", "xe may", "may bay", "tau dien", "xe dap"]
listB = ["tau ngam", "xe hoi", "tau hoa", "truc thang"]

# Hien thi listA ban dau
print("ListA ban dau")
print(listA)

# Hien thi listB
print("ListB ban dau")
print(listB)

# Su dung phuong thuc extend() de noi hai list
listA.extend(listB)

# Hien thi listA sau khi noi them listB
print("ListA sau khi noi them listB ")
print(listA)

Kết quả:

ListA ban dau
[‘oto’, ‘xe may’, ‘may bay’, ‘tau dien’, ‘xe dap’]
ListB ban dau
[‘tau ngam’, ‘xe hoi’, ‘tau hoa’, ‘truc thang’]
ListA sau khi noi them listB
[‘oto’, ‘xe may’, ‘may bay’, ‘tau dien’, ‘xe dap’, ‘tau ngam’, ‘xe hoi’, ‘tau hoa’, ‘truc thang’]