Một tuple là một dãy các đối tượng không thay đổi (immutable) trong Python, vì thế tuple không thể bị thay đổi. Các tuple cũng là các dãy giống như List.
Không giống List mà sử dụng các dấu ngoặc vuông, thì tuple sử dụng các dấu ngoặc đơn. Các đối tượng trong tuple được phân biệt bởi dấu phảy và được bao quanh bởi dấu ngoặc đơn (). Giống như chỉ mục của chuỗi, chỉ mục của tuple bắt đầu từ 0.
Ví dụ:
>>> data=(10,20,'ram',56.8) >>> data2="a",10,20.9 >>> data (10, 20, 'ram', 56.8) >>> data2 ('a', 10, 20.9) >>>
Ghi chú: Nếu các dấu ngoặc đơn không được cung cấp với một dãy, thì nó được coi như là tuple.
Một tuple trống không chứa phần tử nào, ví dụ:
tup1 = ();
Với một tuple chỉ có một giá trị đơn, thì phải có một dấu phảy ở cuối, ví dụ:
tup1 = (50,);
Các tuple cũng có thể được lồng vào nhau, ví dụ:
tupl1='a','hoang',10.56 tupl2=tupl1,(10,20,30) print tupl1 print tupl2
Kết quả:
>>> ('a', 'hoang', 10.56) (('a', 'hoang', 10.56), (10, 20, 30)) >>>
Để truy cập các giá trị trong tuple, bạn sử dụng cách tương tự như khi truy cập các phần tử trong List. Ví dụ:
tup1 = ('vatly', 'hoahoc', 1997, 2000); tup2 = (1, 2, 3, 4, 5, 6, 7 ); print "tup1[0]: ", tup1[0] print "tup2[1:5]: ", tup2[1:5]
Khi code trên được thực thi sẽ cho kết quả:
tup1[0]: vatly tup2[1:5]: [2, 3, 4, 5]
Giống như String và List, bạn cũng có thể sử dụng toán tử nối + và toán tử lặp * với tuple. Điểm khác biệt là nó tạo ra một tuple mới, không tạo ra một chuỗi hay list.
Ví dụ cho toán tử +:
data1=(1,2,3,4) data2=('x','y','z') data3=data1+data2 print data1 print data2 print data3
Kết quả là:
>>> (1, 2, 3, 4) ('x', 'y', 'z') (1, 2, 3, 4, 'x', 'y', 'z') >>>
Ghi chú: Dãy mới được tạo là một Tuple mới.
Ví dụ cho toán tử +:
tuple1=(10,20,30); tuple2=(40,50,60); print tuple1*2 print tuple2*3
Kết quả là:
>>> (10, 20, 30, 10, 20, 30) (40, 50, 60, 40, 50, 60, 40, 50, 60) >>>
Xóa các phần tử đơn của tuple là điều không thể. Bạn chỉ có thể xóa toàn bộ tuple với lệnh del như ví dụ sau:
data=(10,20,'hoang',40.6,'z') print data del data #se xoa du lieu cua tuple print data #se hien thi mot error boi vi tuple da bi xoa
Code trên sẽ cho kết quả sau. Bạn chú ý rằng sẽ có một exception được tạo ra, đó là bởi vì sau khi xóa tup thì tuple này không tồn tại nữa.
>>> (10, 20, 'hoang', 40.6, 'z') Traceback (most recent call last): File "C:/Python27/t.py", line 4, in >module< print data NameError: name 'data' is not defined >>>
Các phần tử của Tuple không thể được cập nhật. Đó là bởi vì tuple là không thay đổi (immutable). Tuy nhiên, các tuple có thể được sử dụng để tạo nên một tuple mới.
Ví dụ sau sẽ tạo một exception:
data=(10,20,30) data[0]=100 print data
Khi code trên được thực thi sẽ cho kết quả:
>>> Traceback (most recent call last): File "C:/Python27/t.py", line 2, in >module< data[0]=100 TypeError: 'tuple' object does not support item assignment >>>
Ví dụ tạo một tuple mới từ các tuple đang tồn tại:
data1=(10,20,30) data2=(40,50,60) data3=data1+data2 print data3
Khi code trên được thực thi sẽ cho kết quả:
>>> (10, 20, 30, 40, 50, 60) >>>
Bất kỳ tập hợp nào gồm nhiều đối tượng, được phân biệt bởi dấu phảy, được viết mà không có các biểu tượng nhận diện (chẳng hạn như dấu ngoặc vuông cho List, dấu ngoặc đơn cho Tuple, …) thì Python mặc định chúng là Tuple. Ví dụ:
print 'abc', -4.24e93, 18+6.6j, 'xyz' x, y = 1, 2; print "Gia tri cua x , y : ", x,y
Khi code trên được thực thi sẽ cho kết quả:
abc -4.24e+93 (18+6.6j) xyz Gia tri cua x , y : 1 2
Bảng dưới liệt kê các hàm đã được xây dựng sẵn để thao tác với Tuple trong Python, bạn theo link để tìm hiểu chi tiết:
STT | Hàm và Miêu tả |
---|---|
1 |
So sánh hai tuple với nhau |
2 |
Trả về độ dài của tuple |
3 |
Trả về item có giá trị lớn nhất từ một tuple đã cho |
4 |
Trả về item có giá trị nhỏ nhất từ một tuple đã cho |
5 |
Chuyển đổi một dãy thành tuple |
Trình xử lý các tuple là nhanh hơn các List.
Làm cho dữ liệu an toàn hơn bởi vì tuple là không thay đổi (immutable) và vì thế nó không thể bị thay đổi.
Các tuple được sử dụng để định dạng String.
» Tin mới nhất:
» Các tin khác: