Tuple là kiểu dữ liệu trình tự (sequence) tương tự list, nhưng bất biến (immutable). Các phần tử cách nhau bởi dấu phẩy và bao trong cặp ngoặc đơn ( ).
Khác biệt List vs Tuple
| Đặc điểm | List | Tuple |
|---|---|---|
| Ký hiệu | [ ] | ( ) |
| Thay đổi kích thước | Được | Không được |
| Sửa phần tử | Được | Không được |
| Hiệu năng | Chậm hơn | Nhanh hơn, nhẹ hơn |
| Dùng làm key dict | Không | Được (nếu chứa kiểu bất biến) |
Ví dụ
#!/usr/bin/python
tuple = ('abcd', 786, 2.23, 'john', 70.2)
tinytuple = (123, 'john')
print(tuple) # ('abcd', 786, 2.23, 'john', 70.2)
print(tuple[0]) # abcd
print(tuple[1:3]) # (786, 2.23)
print(tuple[2:]) # (2.23, 'john', 70.2)
print(tinytuple * 2) # (123, 'john', 123, 'john')
print(tuple + tinytuple)# ('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
Kết quả
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
Lỗi thường gặp
tuple = ('abcd', 786, 2.23, 'john', 70.2)
list = ['abcd', 786, 2.23, 'john', 70.2]
tuple[2] = 1000 # TypeError: 'tuple' object does not support item assignment
list[2] = 1000 # OK - list cho phép sửa đổi
Khi nào dùng Tuple?
- Dữ liệu không thay đổi (hằng số, cấu hình, tọa độ...)
- Cần hiệu năng cao, tiết kiệm bộ nhớ
- Dùng làm khóa dictionary
- Trả về nhiều giá trị từ hàm:
return x, y, z