Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

append() và extend() trong Python - Khác nhau như thế nào?


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 x vào cuối list như một phần tử duy nhất.
  • Độ dài list tăng 1.
  • Nếu x là 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ểmappend()extend()
Tham số1 đối tượng bất kỳ1 iterable
Hành viThê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 đươnglst[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.