Bài này chúng ta sẽ tiếp tục tìm hiểu về kiểu dữ liệu thứ 4 trong ngôn ngữ lập trình Python, đó là kiểu Tuple.
1, Tuple Trong Python là gì?
Tuple trong Python là một kiểu dữ liệu dùng để lưu trữ các đối tượng không thay đổi về sau (giống như hằng số). Còn lại thì cách lưu trữ của nó cũng khá giống như kiểu dữ liệu list mà bài trước chúng ta đã được tìm hiểu.
Để khai báo một enum thì mọi người sử dụng cú pháp sau:
(val1, val2,.., valn)
Trong đó, val1, val2,.., valn
là các giá trị của tuple.
VD: Mình sẽ khai báo 1 Tuple chứa các ngày trong tuần.
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
Nếu bạn khai báo 1 biến chứa các giá trị mà không được bao quang bởi dấu ()
thì Python cũng nhận định nó là một tuple (nhưng mình khuyên mọi người lên sử dụng cách đầu tiên cho code được tường minh).
VD:
day = 'monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday'
Và nếu như bạn muốn khai báo 1 tuple trống thì bạn chỉ cần khai báo như sau:
a = ();
Còn nếu như tuple của bạn chỉ chứa duy nhất một giá trị thì bắt buộc bạn phải thêm một dấu ,
nữa đằng sau giá trị đó.
VD:
a = (10,)
2, Truy cập đến các phần tử trong Tuple.
Để truy cập đến các phần tử trong Tuple thì các bạn thực hiện tương tự như đối với chuỗi và list.
- Các phần tử trong Tuple được đánh dấu từ 0 theo chiều từ trái qua phải.
- Và ngược lại từ -1 theo chiều từ phải qua trái.
VD: Mình sẽ truy cập đến các phần tử trong tuple day
ở trong VD trên.
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
day[0] # monday
day[-2] # saturday
Và nếu như bạn muốn lấy ra một tuple con trong tuple hiện tại thì bạn có thể sử dụng cú pháp sau (giống với list và string):
tupleName[start:end]
Trong đó:
start
là vị trí bắt đầu lấy. Nếu để trốngstart
thì nó sẽ lấy từ đầu Tuple.end
là vị trí kết thúc. Nếu để trốngend
thì nó sẽ lấy đến hết Tuple.
VD:
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
day[1:3] # ('tuesday', 'wednesday')
day[:3] # ('monday', 'tuesday', 'wednesday')
day[1:] # ('tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
3, Các tác vụ khác trên Tuple.
Xóa Tuple.
Như mình đã nói ở trên thì khi một tuple đã được khai báo giá trị thì chúng ta không thể sửa đổi hay xóa các giá trị đó được mà chúng ta chỉ có thể xóa cả tuple đi được thôi.
Để xóa một hay nhiều tuple thì chúng ta sử dụng hàm del .
VD: Mình sẽ xóa Tuple day
.
day = ('monday', 'tuesday', 'wednesday' , 'thursday', 'friday', 'saturday' , 'sunday')
del day
print(day) # Error: name 'day' is not defined
Thêm mới phần tử.
Thực ra đây chỉ là cách lách luật thôi, chứ một tuple đã được khai báo thì chúng ta chỉ được gọi và không được sửa đổi hay thêm mới bất cứ một cái gì cả. Nhưng chúng ta có thể tạo ra được một tuple mới từ các tuple đã có bằng biểu thức + hai tuple.
VD: Mình sẽ ghép 2 tuple day1 và day2 thành tuple day.
day1 = ('monday', 'tuesday', 'wednesday')
day2 = ('thursday', 'friday', 'saturday' , 'sunday')
day = day1 + day2
print(day)
# ('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday')
4, Tuple lồng.
Cũng giống như list, bạn cũng có thể khai báo các tuple lồng nhau.
VD:
day1 = ('monday', 'tuesday', 'wednesday')
day2 = ('thursday', 'friday', 'saturday' , 'sunday', day1)
# day = day1 + day2
print(day2)
# ('thursday', 'friday', 'saturday', 'sunday', ('monday', 'tuesday', 'wednesday'))
print(day2[4][0]) # monday
Và bạn có thể lồng bao nhiêu cấp cũng được. Và lồng bất cứ một kiểu dữ liệu nào cũng ok.
5, Lời kết.
Nếu như các bạn đã tìm hiểu qua các ngôn ngữ khác như c#, java thì chắc các bạn cũng thấy nó khá giống với enum
trong các ngôn ngữ đó đúng không.
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
DDat
4 năm trước
Phát Đỗ
4 năm trước
vhd
3 năm trước
Nguyễn Khánh Toàn
3 năm trước
Nhã ngáo
1 năm trước
Nhật học code
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
invented
1 năm trước
he11o
7 tháng trước