Tuple là một tập hợp các đối tượng Python giống như một list. Chuỗi các giá trị được lưu trữ trong một tuple có thể thuộc bất kỳ loại nào và chúng được lập chỉ mục bởi các giá trị nguyên.
Các giá trị của một tuple được phân tách theo cú pháp bởi ‘dấu phẩy’. Mặc dù không cần thiết, nhưng thông thường, người ta định nghĩa tuple bằng cách đóng chuỗi giá trị trong ngoặc đơn. Điều này giúp chúng ta hiểu được các tuple trong Python dễ dàng hơn.
Nội dung chính
1. Tạo một tuple
Trong Python, các tuple được tạo bằng cách đặt chuỗi các giá trị được phân tách bằng ‘dấu phẩy’, có hoặc không có dấu ngoặc đơn để nhóm chuỗi dữ liệu.
Lưu ý – Tạo tuple trong Python mà không sử dụng dấu ngoặc đơn được gọi là Đóng gói Tuple.
2. Chương trình trong Python để bổ sung các phần tử trong Tuple.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
#Creating an empty Tuple
Tuple1 = ()
print("Initial empty Tuple: ")
print (Tuple1)
#Creatting a Tuple
#with the use of string
Tuple1 = ('Cafedev', 'For')
print("\nTuple with the use of String: ")
print(Tuple1)
# Creating a Tuple with
# the use of list
list1 = [1, 2, 4, 5, 6]
print("\nTuple using List: ")
print(tuple(list1))
#Creating a Tuple
#with the use of built-in function
Tuple1 = tuple('Cafedev')
print("\nTuple with the use of function: ")
print(Tuple1)
Kết quả:
Initial empty Tuple:
()
Tuple with the use of String:
('Cafedev', 'For')
Tuple using List:
(1, 2, 4, 5, 6)
Tuple with the use of function:
('C', 'a', 'f', 'e', 'd', 'e', 'v')
3. Tạo một Tuple với các kiểu dữ liệu hỗn hợp.
Các tuple có thể chứa bất kỳ số lượng phần tử và của bất kỳ kiểu dữ liệu nào (như chuỗi, số nguyên, list, v.v.). Các Tuple cũng có thể được tạo bằng một yếu tố duy nhất, nhưng nó hơi phức tạp. Có một yếu tố trong ngoặc đơn là chưa đủ, phải có ‘dấu phẩy’ để làm cho nó thành một tuple.
#Creating a Tuple
#with Mixed Datatype
Tuple1 = (5, 'Welcome', 7, 'Cafedev')
print("\nTuple with Mixed Datatypes: ")
print(Tuple1)
#Creating a Tuple
#with nested tuples
Tuple1 = (0, 1, 2, 3)
Tuple2 = ('python', 'Cafedev')
Tuple3 = (Tuple1, Tuple2)
print("\nTuple with nested tuples: ")
print(Tuple3)
#Creating a Tuple
#with repetition
Tuple1 = ('Cafedev',) * 3
print("\nTuple with repetition: ")
print(Tuple1)
#Creating a Tuple
#with the use of loop
Tuple1 = ('Cafedev')
n = 5
print("\nTuple with a loop")
for i in range(int(n)):
Tuple1 = (Tuple1,)
print(Tuple1)
Kết quả:
Tuple with Mixed Datatypes:
(5, 'Welcome', 7, 'Cafedev')
Tuple with nested tuples:
((0, 1, 2, 3), ('python', 'Cafedev'))
Tuple with repetition:
('Cafedev', 'Cafedev', 'Cafedev')
Tuple with a loop
('Cafedev',)
(('Cafedev',),)
((('Cafedev',),),)
(((('Cafedev',),),),)
((((('Cafedev',),),),),)
4. Quyền truy cập của Tuples
Các tuple là bất biến, và thông thường, chúng chứa một chuỗi các phần tử không đồng nhất được truy cập thông qua việc giải nén hoặc lập chỉ mục (hoặc thậm chí bằng các thuộc tính trong trường hợp các tuple có tên). Danh sách có thể thay đổi và các phần tử của chúng thường đồng nhất và được truy cập bằng cách lặp qua list.
Ghi chú: Trong việc giải nén tuple, số của các biến ở phía bên trái phải bằng số giá trị trong tuple đã cho.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
#Accessing Tuple
#with Indexing
Tuple1 = tuple("Cafedev")
print("\nFirst element of Tuple: ")
print(Tuple1[1])
#Tuple unpacking
Tuple1 = ("Cafedev", "For", "Cafedev")
#This line unpack
#values of Tuple1
a, b, c = Tuple1
print("\nValues after unpacking: ")
print(a)
print(b)
print(c)
Kết quả:
First element of Tuple:
a
Values after unpacking:
Cafedev
For
Cafedev
5. Phép ghép nối của Tuples
Phép ghép nối của tuple là quá trình nối hai hoặc nhiều tuple lại với nhau. Phép ghép nối này được thực hiện bằng cách sử dụng toán tử ‘+’. Ghép các tuple được thực hiện luôn luôn từ cuối tuple gốc. Các phép toán số học khác không áp dụng trên Tuples.
Lưu ý- Chỉ có các kiểu dữ liệu giống nhau có thể được kết hợp với phép ghép nối này, nếu ghép một tuple với một list sẽ phát sinh lỗi.
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Concatenaton of tuples
Tuple1 = (0, 1, 2, 3)
Tuple2 = ('Cafedev', 'For', 'Cafedev')
Tuple3 = Tuple1 + Tuple2
# Printing first Tuple
print("Tuple 1: ")
print(Tuple1)
# Printing Second Tuple
print("\nTuple2: ")
print(Tuple2)
# Printing Final Tuple
print("\nTuples after Concatenaton: ")
print(Tuple3)
Kết quả:
Tuple 1:
(0, 1, 2, 3)
Tuple2:
('Cafedev', 'For', 'Cafedev')
Tuples after Concatenaton:
(0, 1, 2, 3, 'Cafedev', 'For', 'Cafedev')
6. Phép cắt của Tuple
Cắt một Tuple được thực hiện để lấy một chuỗi cụ thể hoặc lát các thành phần phụ từ Tuple. Phép cắt cũng có thể được thực hiện với list và array. Lập chỉ mục trong kết quả dạng list để tìm kiếm một phần tử trong khi Cắt cho phép tìm kiếm một tập hợp các phần tử.
Lưu ý- Giá trị tăng âm cũng có thể được sử dụng để đảo ngược chuỗi tuple.
[Hình ảnh]
# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------
# Slicing of a Tuple
# Slicing of a Tuple
# with Numbers
Tuple1 = tuple('GEEKSFORGEEKS')
# Removing First element
print("Removal of First Element: ")
print(Tuple1[1:])
# Reversing the Tuple
print("\nTuple after sequence of Element is reversed: ")
print(Tuple1[::-1])
# Printing elements of a Range
print("\nPrinting elements between Range 4-9: ")
print(Tuple1[4:9])
Kết quả:
Removal of First Element:
('E', 'E', 'K', 'S', 'F', 'O', 'R', 'G', 'E', 'E', 'K', 'S')
Tuple after sequence of Element is reversed:
('S', 'K', 'E', 'E', 'G', 'R', 'O', 'F', 'S', 'K', 'E', 'E', 'G')
Printing elements between Range 4-9:
('S', 'F', 'O', 'R', 'G')
7. Phép xóa của tuple
Tuples là bất biến và do đó chúng không cho phép xóa một phần của nó. Toàn bộ tuple bị xóa bằng cách sử dụng phương thức del().
Lưu ý- In Tuple sau khi xóa sẽ dẫn đến lỗi.
# Deleting a Tuple
Tuple1 = (0, 1, 2, 3, 4)
del Tuple1
print(Tuple1)
Traceback (most recent call last):
File “/home/efa50fd0709dec08434191f32275928a.py”, line 7, in
print(Tuple1)
NameError: name ‘Tuple1’ is not defined
8. Phương thức tích hợp
CHỨC NĂNG TÍCH HỢP | SỰ MIÊU TẢ |
All() | Trả về true nếu tất cả phần tử là true hoặc nếu tuple trống |
Any() | Trả về true nếu bất kỳ phần tử nào của tuple là true. Nếu tuple trống, trả về false |
len() | Trả về chiều dài của tuple hoặc kích thước của tuple |
List() | Trả về đối tượng liệt kê của tuple |
Max() | Trả về phần tử tối đa của tuple đã cho |
Min() | Trả về phần tử tối thiểu của tuple đã cho |
Sum() | Tổng hợp các số trong tuple |
Sorted() | Các yếu tố đầu vào trong tuple và trả về một danh sách mới được sắp xếp |
Tuple() | Chuyển đổi một iterable thành một tuple |
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!