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

Các cách xóa toàn bộ phần tử List trong Python

Xóa sạch tất cả phần tử trong list có thể thực hiện bằng nhiều cách khác nhau.

1. list.clear() - Cách chuẩn (Python 3.3+)

lst = ['Mon', 'Tue', 'Wed', 'Thu']
print("Trước:", lst)
lst.clear()
print("Sau:", lst)  # []

2. del list[:] - Xóa slice toàn bộ (In-place)

lst = ['Mon', 'Tue', 'Wed', 'Thu']
print("Trước:", lst)
del lst[2]       # Xóa 1 phần tử index 2
print("Xóa index 2:", lst)  # ['Mon', 'Tue', 'Thu']
del lst[:]       # Xóa tất cả
print("Xóa tất cả:", lst)   # []

3. list *= 0 - Nhân với 0 (In-place)

lst = ['Mon', 'Tue', 'Wed', 'Thu']
lst *= 0
print(lst)  # []

Tương đương lst = lst * 0 nhưng in-place (giữ nguyên object id).

4. Gán lại list rỗng (Re-assignment)

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

Lưu ý: Tạo object list mới. Biến khác tham chiếu list cũ không bị ảnh hưởng.

So sánh: In-place vs Re-assignment

# In-place (clear, del, *=0) - tất cả tham chiếu thấy thay đổi
a = [1,2,3]
b = a
a.clear()
print(b)  # [] - b cũng thấy thay đổi

# Re-assignment - chỉ biến gán mới thấy thay đổi
a = [1,2,3]
b = a
a = []
print(b)  # [1,2,3] - b vẫn giữ list cũ

Bảng tóm tắt

Phương phápIn-place?Python versionKhuyến nghị
list.clear()Có3.3+✅ Chuẩn, rõ ràng
del list[:]CóAll✅ Tương thích ngược
list *= 0CóAll⚠️ Ít đọc được, "clever code"
list = []KhôngAll✅ Khi muốn tạo list mới

Kết luận

Ưu tiên list.clear() (Python 3.3+) hoặc del list[:] cho in-place. Dùng list = [] khi muốn tách biệt reference.