Cả hai đều thêm phần tử vào list, nhưng hành vi khác biệt cơ bản.
append(x) - Thêm 1 phần tử đơn lẻ
- Thêm
xvào cuối list như một phần tử duy nhất. - Độ dài list tăng 1.
- Nếu
xlà list → list lồng nhau (nested list).
lst = ['Mon', 'Tue', 'Wed']
print("Gốc:", lst)
lst.append('Thu')
print("Append 'Thu':", lst) # ['Mon','Tue','Wed','Thu']
lst.append(['Fri', 'Sat'])
print("Append list:", lst) # ['Mon','Tue','Wed','Thu', ['Fri','Sat']]
extend(iterable) - Thêm từng phần tử của iterable
- Duyệt iterable, thêm từng phần tử vào cuối list.
- Độ dài list tăng thêm
len(iterable). - Nếu truyền string → thêm từng ký tự (vì string là iterable của ký tự).
lst = ['Mon', 'Tue', 'Wed']
print("Gốc:", lst)
lst.extend("Thu")
print("Extend 'Thu':", lst) # ['Mon','Tue','Wed','T','h','u']
lst.extend(['Fri', 'Sat'])
print("Extend list:", lst) # ['Mon','Tue','Wed','T','h','u','Fri','Sat']
Bảng so sánh nhanh
| Đặc điểm | append() | extend() |
|---|---|---|
| Tham số | 1 đối tượng bất kỳ | 1 iterable |
| Hành vi | Thêm nguyên vẹn 1 phần tử | Bóc tách, thêm từng phần tử |
| Độ dài tăng | +1 | +len(iterable) |
| Tương đương | lst[len(lst):] = [x] | lst[len(lst):] = iterable |
Kết luận
Muốn thêm 1 item → append(). Muốn nối list/iterable → extend(). Nhầm lẫn thường gặp: append([1,2]) tạo nested list, extend([1,2]) làm phẳng.