🎯 Mục Tiêu
- Tuple là gì và tại sao lại dùng Tuple?
- Cách khởi tạo và đóng gói/mở gói (packing/unpacking)
- Việc truy xuất phần tử và ý nghĩa thực tế của tính bất biến (immutable)
- Các công cụ (methods) hữu ích tích hợp sẵn
Khởi Tạo Tuple (Creating Tuples)
Tuple là một cấu trúc dữ liệu dùng để lưu trữ danh sách các giá trị như List, nhưng điểm khác biệt mấu chốt là Tuple không thể bị thay đổi sau khi được tạo ra (tính bất biến – Immutable).
# Cách 1: Sử dụng cặp ngoặc đơn ()
point = (10, 20)
colors = ("red", "green", "blue")
# Cách 2: Bỏ qua ngoặc đơn (tuple packing)
# Python tự động hiểu dạng dãy số cách nhau bởi dấu phẩy là một Tuple
person = "An", 25, "Hà Nội"
# Khởi tạo Tuple có 1 phần tử
# CẦN THIẾT phải có dấu phẩy, nếu không Python sẽ hiểu đó là phép toán hoặc string
single_tuple = (42,)
not_a_tuple = (42) # Đây là số kiểu integer bình thường
2. Truy Cập Element (Accessing Elements)
Tương tự như List, Tuple sử dụng chỉ số (index) bắt đầu từ 0 để truy cập các phần tử, và hỗ trợ slicing.
colors = ("red", "green", "blue", "yellow")
# Lấy phần tử cụ thể
print(colors[0]) # "red"
print(colors[-1]) # "yellow" (phần tử cuối cùng)
# Cắt Tuple (Slicing) -> Trả về một Tuple mới
print(colors[1:3]) # ("green", "blue")
3. Tính Bất Biến (Immutability)
Không thể thêm, xóa hay sửa giá trị phần tử của Tuple sau khi nó được tạo ra.
point = (10, 20)
# ❌ Lỗi: TypeError: 'tuple' object does not support item assignment
# point[0] = 15
# ❌ Lỗi: Tuple không có các hàm append(), remove(), pop()
# point.append(30)
Tuy nhiên, nếu bản thân phần tử trong Tuple là một List (mutable object), bạn vẫn có thể thay đổi List bên trong nó:
mixed_tuple = (1, 2, [3, 4])
mixed_tuple[2].append(5) # Hợp lệ: (1, 2, [3, 4, 5])
4. Giải Nén Tuple (Unpacking)
Đây là tính năng vô cùng hữu hiệu cho phép bạn gán từng phần tử của Tuple cho các biến rời rạc chỉ với một dòng lệnh.
person = ("An", 25, "Hà Nội")
# Mở gói (Unpacking)
name, age, city = person
print(name) # "An"
# Sử dụng _ cho những giá trị không quá quan trọng, không dùng tới
id, _, address = (101, "admin", "123 Main St")
5. Tuple Methods
Do tính chất bất biến nên Tuple chỉ có vỏn vẹn 2 phương thức dựng sẵn.
numbers = (1, 2, 3, 2, 4, 2)
# count(value) - Đếm số lần xuất hiện của một giá trị
print(numbers.count(2)) # Kết quả: 3 (số 2 xuất hiện 3 lần)
# index(value) - Tìm vị trí (index) ĐẦU TIÊN của một giá trị
print(numbers.index(4)) # Kết quả: 4 (nằm ở vị trí thứ 4)
💡 Key Takeaways
- Khởi tạo Tuple dùng
()hoặc cú pháp đóng gói dùng dấu, - Chỉ số Tuple tuân theo quy tắc: từ
0(trái sang), từ-1(phải sang). - Đặc điểm Immutable (Bất biến) bảo vệ an toàn cho dữ liệu, tránh việc vô tình sửa đổi, và đọc dữ liệu nhanh hơn List.
- Tuple thường được dùng khi:
- Lưu một tập dữ liệu cố định xuyên suốt vòng đời phần mềm (ví dụ: RGB Colors, Tọa độ bản đồ).
- Làm Key (khoá) trong Dictionary (bởi vì Dictionary yêu cầu keys phải là kiểu bất biến).
- Trả về nhiều giá trị một lúc từ Functions.
➡️ Bài Tiếp Theo Lesson 11 – Sets

