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áp | In-place? | Python version | Khuyến nghị |
|---|---|---|---|
| list.clear() | Có | 3.3+ | ✅ Chuẩn, rõ ràng |
| del list[:] | Có | All | ✅ Tương thích ngược |
| list *= 0 | Có | All | ⚠️ Ít đọc được, "clever code" |
| list = [] | Không | All | ✅ 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.