Trong bài viết này, chúng ta sẽ tìm hiểu khái niệm về tuple của Python – tập hợp dữ liệu không đồng nhất, có thứ tự và bất biến.
Biết cách sử dụng tuple Python không chỉ giúp các bạn biết thêm công cụ để lưu trữ dữ liệu mà còn giúp củng cố các kiến thức cơ bản về lập trình Python.
Chú ý: Người đọc đã có kiến thức cơ bản về ngôn ngữ lập trình Python.
Python Tuple là gì?
Tuples là một tập hợp dữ liệu không đồng nhất, có thứ tự và bất biến trong Python. Chúng là bất biến theo nghĩa một khi đã được tạo ra thì không thể sửa đổi được. Sau khi khai báo, thứ tự của các phần tử được cố định. Chúng có thể chứa hỗn hợp các kiểu dữ liệu. Chúng cũng có thể chứa các phần tử trùng lặp.
Dưới đây, chúng ta sẽ khám phá các thuộc tính khác nhau của chúng.
Tạo Tuple
Có một số cách để tạo tuple. Bất kỳ tập hợp phần tử nào được phân tách bằng dấu phẩy đều được mặc định thành một tuple. Tuy nhiên, tốt hơn là khai báo tường minh một bộ các giá trị bên trong dấu ngoặc đơn. Chúng ta cũng có thể sử dụng phương thức khởi tạo để tạo tuple.
>>> a = 'abc', 123, 466, 588
>>> type(a)
<class 'tuple'>
# sử dụng dấu ngoặc
>>> b = ('abc', 123, 466, 588)
>>> type(a)
<class 'tuple'>
# sử dụng hàm khởi tạo.
>>> c = tuple((1, 2, 3, 4.5, 'Nghia'))
>>> c[4]
'Nghia'
Các phần tử của một tuple
Tuples có thể chứa các kiểu dữ liệu tương tự hoặc hỗn hợp. Chúng cũng có thể chứa các phần tử trùng lặp.
# các phần tử có kiểu giống nhau
my_tuple = (1, 2, 2, 3, 4, 5)
# các phần tử thuộc nhiều kiểu khác nhau
my_tuple2 = (1, 'Nghia', [3.0, 9.9], 'Trong')
Chỉ số Tuples
Các phần tử tuple có thể được truy cập bằng cách sử dụng chỉ số của tuple. VD với my_tuple2 được khai báo ở trên.
# phần tử đầu
>>> my_tuple2[0]
1
# phần tử thứ 3
>>> my_tuple2[2]
[3.0, 9.9]
# phần tử thứ 2 của phần tử thứ 3 (phần tử thứ 3 là 1 list)
>>> my_tuple2[2][1]
9.9
Cắt lát và đảo ngược Tuple
Tuples có thể được cắt lát giống như list. VD với my_tuple2
# phần tử thứ 2 và thứ 3
>>> my_tuple2[1:3]
('Nghia', [3.0, 9.9])
# phần tử thứ ba và thứ tư
>>> my_tuple2[2:4]
([3.0, 9.0], 'Trong')
# đảo ngược tuple
>>> my_tuple2[::-1]
(' Trong ', [3.0, 9.9], 'Nghia', 1)
Vòng lặp
Chúng ta có thể sử dụng vòng lặp for để lặp lại các phần tử của một tuple.
>>> for elem in my_tuple2 :
... print (elem)
...
1
Nghia
[3.0, 9.9]
Trong
Tính bất biến
Tuple không thể được sửa đổi, tức là không thể sửa đổi hoặc xóa các phần tử.
# không hỗ trợ cập nhật => error
>>> my_tuple2[1] = 5
# không hỗ trợ xóa phần tử => error
>>> del my_tuple2[2]
# cập nhật phần tử của list bên trong tuple thì được phép
>>> my_tuple2[2][1] = 6.0
>>> my_tuple2
(1, 'Nghia', [3.0, 6.0], 'Trong')
# xóa cả tuple thì được phép
>>> del my_tuple2
Kết hợp và Lặp lại các Tuples
Các tuple có thể được kết hợp bằng cách sử dụng toán tử +. Chúng cũng có thể được lặp lại n lần bằng cú pháp (tuple) * n.
# kết hợp
>>> [1,2,3] + [4,5,6]
[1, 2, 3, 4, 5, 6]
# lặp lại
>>> (1,2,3)*3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
Số phần tử và Vị trí
Chúng ta có thể tìm số lần xuất hiện một phần tử xuất hiện trong tuple cũng như (các) vị trí của một phần tử trong đó.
>>> t = (1, 2, 3, 2, 2, 5, 6, 7, 8, 1)
# chỉ số xuất hiện đầu tiên của 2 trong tuple t
>>> t.index(2)
1
# tất cả các chỉ số xuất hiện của phần tử 2
>>> [index for index, value in enumerate(t) if value == 2]
[1, 3, 4]
# đến số lần xuất hiện
>>> t.count(2)
3
Các hàm hữu ích
Các hàm sau đây là các hàm hữu ích để kiểm tra các phần tử của một tuple.
>>> t = (1, 1, 3, 2, 5, 6, 7, 8, 9)
>>> len(t)
9
>>> max(t)
9
>>> min(t)
1
Kiểm tra thành viên Tuple
Toán tử Python in có thể được sử dụng để kiểm tra xem một phần tử có phải là thành viên của một tuple hay không. Biểu thức trả về True nếu phần tử là thành viên của tuple và False nếu nó không phải.
>>> t = (1, 1, 3, 2, 5, 6, 7, 8, 9)
>>> 5 in t
True
>>> 11 in t
False
Kết luận
- Tuple rất giống với danh sách. Tuy nhiên, chúng không thể được sửa đổi sau khi được tạo.
- Chúng có thể được kết hợp bằng cách sử dụng toán tử + và được lặp lại bằng cách sử dụng toán tử *.
- Chúng có thể được lập chỉ mục và cắt lát tương tự như danh sách.
- Các phần tử có thể được lặp lại trong một tuple.
- Vị trí của (các) phần tử và số lần xuất hiện của nó có thể dễ dàng xác định bằng cách sử dụng các phương pháp có sẵn trên tuple hoặc bằng cách sử dụng list comprehension.
Nói chung, bạn nên sử dụng các tuple nơi bạn cần cấu trúc dữ liệu chỉ đọc tương tự như một list. Điều này đảm bảo rằng dữ liệu của bạn được bảo vệ, nhưng vẫn có thể sử dụng các biến tuple đó cho nhiều tác cụ trong suốt chương trình của mình. Chúc bạn gặp nhiều may mắn với các dự án Python của mình và hy vọng bạn thấy tuple Python hữu ích!
Tham khảo thêm
– Khóa học Học lập trình python cơ bản thông qua lập trình một game trên unica.
– W3 Schools – Python Tuples https://www.w3schools.com/python/python_tuples.asp
– Tutorials Point – Tuples https://www.tutorialspoint.com/python/python_tuples.htm