Tuple là immutable vì các lý do sau:
- Duy trì thứ tự (maintaining order): Tuple được thiết kế để biểu diễn thứ tự. Ví dụ: truy xuất dữ liệu từ database trả về list of tuples, các tuple theo thứ tự field.
- Hiệu quả sao chép (copy efficiency): Thay vì copy đối tượng immutable, có thể alias (gán biến tham chiếu đến cùng đối tượng).
- Hiệu quả so sánh (comparison efficiency): Với copy-by-reference, so sánh hai biến bằng cách so sánh địa chỉ (identity) thay vì nội dung.
- Interning: Chỉ cần lưu tối đa một bản sao của bất kỳ giá trị immutable nào; không cần đồng bộ hóa truy cập trong code concurrent.
- Đúng đắn hằng số (const correctness): Một số giá trị không nên được phép thay đổi.
Hệ quả: Vì immutable, tuple có thể dùng làm key trong dictionary và element trong set – list thì không.