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

Mở rộng list trong Python (5 cách)

List là cấu trúc dữ liệu phổ biến nhất. Khi cần thêm phần tử, có 5 cách chính:

1. Toán tử + (Tạo list mới)

lst = ['Mon', 'Tue', 'Wed']
lst = lst + ['Thu', 'Fri']
print(lst)  # ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

Tạo list mới, list gốc không đổi (nếu không gán lại).

2. Slicing gán (In-place)

lst = ['Mon', 'Tue', 'Wed']
lst[len(lst):] = ['Thu', 'Fri']
print(lst)  # ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']

Gán vào slice từ cuối list đến cuối.

3. append() - Thêm 1 phần tử (In-place)

lst = ['Mon', 'Tue', 'Wed']
lst.append('Thu')
lst.append('Fri')
lst.append(['Sat', 'Sun'])  # Thêm list như 1 phần tử
print(lst)  # ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', ['Sat', 'Sun']]

Lưu ý: append thêm object nguyên vẹn. Nếu thêm list → nested list.

4. extend() - Thêm nhiều phần tử từ iterable (In-place)

lst1 = ['Mon', 'Tue', 'Wed']
lst2 = ['Thu', 'Fri', 'Sat']
lst1.extend(lst2)
print(lst1)  # ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']

Phần tử của lst2 được thêm riêng lẻ (flatten).

5. itertools.chain() - Nối nhiều iterable (Tạo iterator mới)

from itertools import chain

lst1 = ['Mon', 'Tue', 'Wed']
lst2 = ['Thu', 'Fri']
lst3 = ['Sat', 'Sun']

combined = list(chain(lst1, lst2, lst3))
print(combined)  # ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

Hữu ích khi nối nhiều list, hoặc làm việc với iterator lớn (lazy evaluation).

Bảng so sánh

Phương phápIn-place?Thêm 1 phần tửThêm iterable (flatten)Nối nhiều list
+Không✅✅✅ (lồng nhau)
slice =Có✅✅❌
append()Có✅❌ (nested)❌
extend()Có❌✅❌
chain()Không❌✅✅ (tối ưu)

Khuyến nghị

  • Thêm 1 item: append()
  • Thêm list khác (flatten): extend()
  • Nối nhiều list, không sửa gốc: list(chain(...)) hoặc [*a, *b, *c] (Python 3.5+)