D
DevStart

Tuple trong Python: khi nào nên dùng?

16 phútDễ

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 ().

python
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.

python
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


python
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ử.

python
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:

python
vi_tri = (120, 340)
print(vi_tri)

Hoặc một hàm trả về nhiều giá trị:

python
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ề:

python
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.

  • list dùng dấu [] và có thể thay đổi

  • tuple dùng dấu () và không thể thay đổi

  • list phù hợp khi cần thêm, sửa, xóa dữ liệu

  • tuple phù hợp khi dữ liệu cần ổn định


Ví dụ so sánh:

python
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
Ví dụ tuple một phần tử:
python
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 ý:

python
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.