Cả List và Tuple là sequence data type. Đều là collection các item ngăn cách bằng dấu phẩy, không nhất thiết cùng type.
Tương đồng
Concatenation, repetition, indexing, slicing đều làm được trên cả hai:
# List L1 = [1,2,3]; L2 = [4,5,6] L1 + L2 # [1,2,3,4,5,6] L1 * 3 # [1,2,3,1,2,3,1,2,3] L1[4] # 5 L1[2:4] # [3,4] # Tuple T1 = (1,2,3); T2 = (4,5,6) T1 + T2 # (1,2,3,4,5,6) T1 * 3 # (1,2,3,1,2,3,1,2,3) T1[4] # 5 T1[2:4] # (3,4)
Built-in functions chung: len(), max(), min().
Khác biệt
| Đặc điểm | List | Tuple |
|---|---|---|
| Mutability | Mutable (thay đổi được) | Immutable (bất biến) |
| Append/Insert | Có | Không (AttributeError) |
| Update item | L1[2] = 100 ✓ | TypeError |
| Delete item | remove(), del ✓ | AttributeError |
| Memory | Lớn hơn | Nhỏ hơn, nhanh hơn |
| Dùng làm dict key | Không (unhashable) | Có (nếu element hashable) |
Khi nào dùng gì?
- List: collection cần thay đổi (add/remove/update)
- Tuple: dữ liệu cố định, record, dict key, return multiple values