Tuple trong Python là gì?
Tuple trong Python là kiểu dữ liệu dùng để lưu nhiều giá trị giống như list, nhưng khác ở chỗ tuple không thể thay đổi sau khi tạo. Khi học tuple trong python, bạn đang học một cấu trúc phù hợp cho dữ liệu cố định như tọa độ, ngày tháng, cấu hình hoặc nhóm giá trị trả về từ hàm.
Nói ngắn gọn: nếu list phù hợp cho dữ liệu hay cập nhật, thì tuple phù hợp cho dữ liệu cần giữ ổn định. Đây là điểm cốt lõi mà bạn cần nhớ nhất về tuple.
Cách tạo tuple trong Python
Tuple thường được viết trong dấu ().
toa_do = (10, 20)
mon_hoc = ("Python", "HTML", "C++")
print(toa_do)
print(mon_hoc[0])
print(len(mon_hoc))
Bạn vẫn có thể truy cập phần tử bằng chỉ số giống như list.
thong_tin = ("Lan", 20, "Ha Noi")
print(thong_tin[1])
print(thong_tin[-1])
Tuple cũng có thể chứa nhiều kiểu dữ liệu khác nhau, dù với người mới bạn nên ưu tiên ví dụ đơn giản để dễ hiểu. Nếu một nhóm dữ liệu luôn đi cùng nhau và không nên sửa, tuple là lựa chọn hợp lý.
Truy cập phần tử trong tuple Python
Tuple hỗ trợ:
- Truy cập bằng chỉ số
- Cắt một đoạn bằng slicing
- Duyệt bằng vòng lặp
so = (1, 2, 3, 4, 5)
print(so[0])
print(so[1:4])
for item in so:
print(item)
Về mặt đọc dữ liệu, tuple khá giống list. Điểm khác biệt lớn nhất nằm ở khả năng thay đổi. Chính vì giống list ở nhiều chỗ, người mới thường nhầm rằng tuple cũng sửa được như list.
Tuple có thay đổi được không?
Không. Đây là đặc điểm quan trọng nhất của tuple. Sau khi tạo, bạn không thể sửa trực tiếp từng phần tử.
so = (1, 2, 3)
# Sai vi tuple khong cho phep thay doi phan tu
# so[0] = 10
print(so)
Chính vì không thay đổi được, tuple giúp giảm nguy cơ dữ liệu bị sửa ngoài ý muốn trong chương trình. Điều này hữu ích khi bạn muốn thể hiện rõ rằng một nhóm dữ liệu chỉ dùng để đọc, không dùng để cập nhật.
Khi nào nên dùng tuple trong Python?
Tuple phù hợp trong các trường hợp sau:
- Dữ liệu cần cố định sau khi tạo
- Muốn biểu diễn một nhóm giá trị liên quan với nhau
- Hàm cần trả về nhiều giá trị cùng lúc
- Muốn thể hiện rõ rằng dữ liệu này không nên bị sửa
Ví dụ, tọa độ màn hình là một trường hợp rất điển hình:
vi_tri = (120, 340)
print(vi_tri)Hoặc một hàm trả về nhiều giá trị:
def tinh_hieu_va_tong(a, b):
return (a - b, a + b)
ket_qua = tinh_hieu_va_tong(10, 3)
print(ket_qua)
Bạn cũng có thể tách trực tiếp các giá trị trả về:
hieu, tong = tinh_hieu_va_tong(10, 3)
print(hieu)
print(tong)Đây là cách dùng tuple rất phổ biến trong Python, ngay cả ở code thực tế.
Tuple và list trong Python khác nhau thế nào?
Đây là câu hỏi rất hay gặp với người mới.
listdùng dấu[]và có thể thay đổitupledùng dấu()và không thể thay đổilistphù hợp khi cần thêm, sửa, xóa dữ liệutuplephù hợp khi dữ liệu cần ổn định
Ví dụ so sánh:
ds = [1, 2, 3]
ds[0] = 10
print(ds)
tp = (1, 2, 3)
print(tp)
Khi bạn đọc code của người khác, việc họ chọn tuple thay vì list thường mang ý nghĩa rằng dữ liệu đó không nên bị thay đổi. Đây là một tín hiệu rất hữu ích khi đọc chương trình.
Những lỗi thường gặp với tuple trong Python
- Nghĩ rằng tuple sửa được như list
- Quên dấu phẩy khi tạo tuple có một phần tử
- Nhầm tuple với list vì cả hai đều lưu nhiều giá trị
- Truy cập vị trí không tồn tại
a = (5,)
print(type(a))Nếu viết (5) thì đó chỉ là số 5 trong ngoặc, chưa phải tuple. Đây là lỗi rất thường gặp với người mới.
Bài tập thực hành
Tạo một tuple lưu thông tin một cuốn sách gồm:
- Tên sách
- Tác giả
- Năm xuất bản
Sau đó:
- In ra từng giá trị bằng chỉ số
- Dùng vòng lặp để in lại toàn bộ tuple
- Tạo thêm một tuple khác lưu tọa độ
x, y
Gợi ý:
sach = ("Python co ban", "DevStart", 2024)Sau khi làm xong, hãy tự trả lời câu hỏi: trong hai ví dụ trên, vì sao tuple lại hợp lý hơn list? Đây là cách rất tốt để hiểu bản chất thay vì chỉ nhớ định nghĩa.
Câu hỏi thường gặp về tuple trong Python
Vì sao tuple trong Python không sửa được?
Tuple được thiết kế cho dữ liệu cố định để tránh bị thay đổi ngoài ý muốn. Điều này giúp code an toàn hơn trong một số tình huống.
Khi nào nên dùng tuple thay vì list?
Hãy dùng tuple khi dữ liệu không cần thêm, sửa, xóa sau khi tạo, ví dụ tọa độ, thông số cấu hình hoặc nhóm giá trị trả về từ hàm.
Tuple có duyệt bằng vòng lặp được không?
Có. Dù không sửa được, tuple vẫn có thể truy cập bằng chỉ số, cắt đoạn và duyệt qua bằng for giống như list.
Tuple có thể chứa nhiều kiểu dữ liệu không?
Có. Bạn có thể lưu chuỗi, số, boolean trong cùng một tuple. Tuy nhiên khi mới học, hãy giữ ví dụ rõ ràng và nhất quán để dễ theo dõi hơn.
Tóm tắt
Bạn đã biết tuple trong Python là gì, cách tạo tuple, truy cập dữ liệu, hiểu vì sao tuple không thay đổi được và phân biệt tuple với list. Ở bài tiếp theo, chúng ta sẽ học set trong Python để xử lý dữ liệu không trùng lặp.
Bài viết liên quan

Next.js là gì? Tại sao nên dùng Next.js để làm web?
Giới thiệu Next.js — framework React phổ biến nhất. Tìm hiểu ưu điểm, tính năng nổi bật và khi nào nên dùng.

Con bug đầu tiên trong cuộc đời lập trình viên
Câu chuyện hài hước về lần đầu gặp bug và mất 3 tiếng để tìm ra nguyên nhân chỉ là... thiếu dấu chấm phẩy.

Hướng dẫn cài đặt Python chi tiết trên Windows, macOS, Linux
Hướng dẫn từng bước cài đặt Python trên mọi hệ điều hành. Kèm cách kiểm tra và chạy chương trình đầu tiên.