Hai cấu trúc dữ liệu hoàn toàn khác biệt.
Tuple:
- Thứ tự được duy trì.
- Immutable (bất biến).
- Chứa được mọi kiểu, có thể trộn kiểu.
- Truy cập bằng chỉ số số (zero-based index).
Dictionary (bảng băm/hash table):
- Thứ tự không đảm bảo (Python 3.7+ giữ insertion order nhưng bản chất là hash table).
- Mỗi entry có key và value.
- Truy cập bằng giá trị của key.
- Entry có thể thay đổi (mutable).
- Key: bất kỳ kiểu hashable nào (không phải dict), có thể trộn kiểu; Value: bất kỳ kiểu nào (kể cả dict lồng), có thể trộn kiểu.
Cả hai đều có thể tạo bằng comprehension.
Ví dụ:
Tuple: (1, 'a', (3, 6, 8), 'string')
Dictionary: {'foo': [1, 2, 3], 'bar': 'baz'}