Bài 9 – Kiểu dữ liệu tuple trong ngôn ngữ lập trình Python
1. Tìm hiểu kiểu dữ liệu tuple
– Kiểu dữ liệu Tuple trong python là một collection có thứ tự, không thể thay đổi. Cho phép chứa dữ liệu trùng lặp.
– Cấu trúc của kiểu dữ liệu tuple như sau: (giá trị 1>, <giá trị 2>,…,<giá trị n>)
Trong đó:
+ Chỉ số dương của các phần tử được đánh bắt đầu từ phần tử đầu là 0 đến số phần tử trừ 1
+ Chỉ số âm của các phần tử được đánh bắt từ phần tử cuối là -1 đến – số phần tử
2. Khởi tạo tuple
a. Dạng liệt kê
Ví dụ:
tup = () #Tạo biến tup kiểu tuple rỗng
tup = (1,) #Tạo biến tup kiểu tuple có 1 phần tử có giá trị là 1
tup = (1, 3, “Hello”) #Tạo biến tup kiểu tuple gồm 3 phần tử
tup = ((1,2,3),(4,5,6)) #Tạo tuple lồng nhau để mô tả ma trận
b. Dạng tuple Comprehension
<tên biến tuple> = tuple((<biểu thức> for <tên biến> if <điều kiện>))
Ví dụ:
tup = tuple(x for x in range(0,11) if x%2!=0) #Tạo biến tup kiểu tuple gồm 5 số lẻ
tup = tuple(‘Hello’) #Tạo biến tup = (‘H’,’e’,’l’,’l’,’o’) từ xâu
tup = tuple([1, 3, “Hello”]) #Tạo biến tup kiểu tuple gồm 3 phần tử từ list
Lưu ý: Vì kiểu tuple là hash object do đó ta không thể thay đổi giá trị từng phần tử của tuple
tup[1] = ‘Xin chao’ #TypeError: 'tuple' object does not support item assignment
3. Một số toán tử với tuple
Toán tử | Ý nghĩa |
a + b | Nối tuple a vào sau tuple b |
a * k | Lặp lại số phần tử của tuple a với k lần |
x in a | Trả về True nếu x có trong a và False nếu x không có trong a |
4. Indexing và cắt tuple
Cú pháp: <tên tuple>[start:end] lấy phần tử từ vị trí start đến trước end (end-1)
Ví dụ:
tup = (1, 2, ‘a’, ‘b’, [3, 4])
Khi đó:
tup[0] = 1 #Phần tử thứ 1
tup[-1] = [3, 4] #Phần tử cuối cùng
tup[1:3] = (2, ‘a’) #Các phần tử từ chỉ số 1 đến 2
tupe[:2] = (1, 2) #Các phần tử từ chỉ số 1 về đầu
tup[2:] = (‘a’, ‘b’, [3, 4]) #Các phần tử từ chỉ số 2 về cuối
tup[::-1] = ([3, 4], ‘b’, ‘a’, 2, 1) #Đảo ngược tuple
Lưu ý:
– Như vậy indexing và cắt tuple tương tự như kiểu dữ liệu xâu hoặc kiểu danh sách
– Điểm khác biệt cơ bản giữa tuple và list đó là tuple là hash object (đối tượng không thể sửa đổi dữ liệu từng phần tử còn list là unhash object nên có thể sửa đổi dữ liệu cho từng phần tử).
5. Một số hàm xử lý tuple trong Python
Hàm | Ý nghĩa |
len(tup) | Trả về độ dài của tuple |
max(tup) | Trả về giá trị lớn nhất của tuple |
min(tup) | Trả về giá trị nhỏ nhất của tuple |
sorted(tup[,key = <tên hàm>],reverse=True) | Trả về list của tup sau khi đã sắp xếp tăng dần |
tuple(seq) | Chuyển dãy thành kiểu tuple |
Ví dụ:
tup1 = (5, -4, -7, 6)
tup = tuple(sorted(tup1,key = abs)) #Sắp xếp tuple theo trị tuyệt đối
tup2 = (“apple”,”pen”,”desk”,”banana”)
tup = tuple(sorted(tup2,key = len)) #Sắp xếp theo độ dài của xâu
tup = tuple(sorted(tup2,key = my_func)) #Sắp xếp theo hàm tự định nghĩa my_func
Xem tiếp Bài 10 – Chương trình con trong ngôn ngữ lập trình Python