1. Đặc điểm của Tuple trong Python
Tuple trong Python dùng để lưu trữ nhiều phần tử giống như List. Nhưng các phần tử trong Tuple đã có thứ tự (ordered) và không thể thay đổi (unchangeable). Các phần tử của Tuple được đặt trong dấu ngoặc tròn (round bracket), có thể là bất kỳ kiểu dữ liệu nào và cách nhau bởi dấu phẩy. Ví dụ:
# Empty tuple
my_tuple = ()
print("Empty tuple:", my_tuple)
# Tuple having integers
my_tuple = (1, 2, 3)
print("Tuple having integers:", my_tuple)
# Tuple with mixed datatypes
my_tuple = (1, "Gochocit", 3.4)
print("Tuple with mixed datatypes:", my_tuple)
# Nested tuple
my_tuple = ("Gochocit", [8, 4, 6], (1, 2, 3))
print("Nested tuple:", my_tuple)
Kết quả
Empty tuple: ()
Tuple having integers: (1, 2, 3)
Tuple with mixed datatypes: (1, 'Gochocit', 3.4)
Nested tuple: ('Gochocit', [8, 4, 6], (1, 2, 3))
Lưu ý: Nếu như tạo tuple với một phần tử thì phải có dấu phẩy cuối cùng. Nếu không có dấu phẩy thì Python sẽ không xác định đó là tuple.
my_tuple = ("hello")
print("my_tuple is a string:", type(my_tuple))
my_tuple = ("hello",)
print("my_tuple is a tuple:", type(my_tuple))
Kết quả
my_tuple is a string: <class 'str'>
my_tuple is a tuple: <class 'tuple'>
Python cho phép có nhiều phần tử có giá trị giống nhau trong Tuple.
# Duplicate items in tuple
my_tuple = ("hello", 1, 9, 1.5, 9, "hello", "Gochocit.com")
print("Duplicate items in tuple:", my_tuple)
Kết quả
Duplicate items in tuple: ('hello', 1, 9, 1.5, 9, 'hello', 'Gochocit.com')
Kích thước Tuple trong Python
Hàm len()
giúp xác định số phần tử trong Tuple.
my_tuple = ("hello", 1, 9, 1.5, 9, "hello", "Gochocit.com")
print("Size of my_tuple:", len(my_tuple))
Kết quả
Size of my_tuple: 7
2. Truy cập các phần tử trong Tuple
Các phần tử trong Tuple được đánh chỉ mục (index). Phần tử đầu tiền có index là 0, phần tử thứ 2 có index là 1,…Index cũng có thể là số nguyên âm. Phần tử cuối cùng có thể được đánh index là -1, phần tử kế cuối là -2,… Ví dụ:
my_tuple = ("hello", 1, 9, 1.5, 9, "hello", "Gochocit.com")
# Output: 1.5
print("Item at index 3:", my_tuple[3])
# Output: 9
print("Item at index -5:", my_tuple[-5])
Kết quả
Item at index 3: 1.5
Item at index -5: 9
Chúng ta cũng có thể truy xuất các phần tử trong Tuple với việc xác định một khoảng (range) index. Ví dụ:
my_tuple = ("hello", 1, 9, 1.5, 9, "hello", "Gochocit.com")
# Access items from 1 to 5
# Output: (1, 9, 1.5, 9, 'hello')
print("Index from 1 to 5:", my_tuple[1: 6])
# Access items from 0 to 4
# Output: ('hello', 1, 9, 1.5, 9)
print("Index from 0 to 4:", my_tuple[: 5])
# Access items from 2 to end
# Output: (9, 1.5, 9, 'hello', 'Gochocit.com')
print("Index from 2 to end:", my_tuple[2: ])
Kết quả
Index from 1 to 5: (1, 9, 1.5, 9, 'hello')
Index from 0 to 4: ('hello', 1, 9, 1.5, 9)
Index from 2 to end: (9, 1.5, 9, 'hello', 'Gochocit.com')
Kiểm tra một item có nằm trong Tuple hay không?
my_tuple = ("hello", 1, 9, 1.5, 9, "hello", "Gochocit.com")
if "Gochocit.com" in my_tuple:
print("'Gochocit.com' is in my_tuple")
Kết quả
'Gochocit.com' is in my_tuple
3. Thay đổi các phần tử trong Tuple
Chúng ta không thể thay đổi các phần tử trong Tuple. Nhưng nếu các phần tử trong Tuple là một cấu trúc dữ liệu có thể có thể thay đổi như List, thì chúng ta có thể thay đổi List đó. Ngoài ra, chúng ta cũng có thể gán lại (reassign) một Tuple khác cho một biến.
my_tuple = ("hello", 50, [1, 9, 1.5, 9] , "Gochocit.com")
# TypeError: 'tuple' object does not support item assignment
# my_tuple[1]= 'change'
# item of mutable element in Tuple can be changed
my_tuple[2][0] = 1111
print("Change item of mutable element in tuple:", my_tuple)
# Tuple can be reassigned
my_tuple = ("Gochocit.com", 1, 9, 0, 1.1)
print("Reassign my_tuple:", my_tuple)
Kết quả
Change item of mutable element in tuple: ('hello', 50, [1111, 9, 1.5, 9], 'Gochocit.com')
Reassign my_tuple: ('Gochocit.com', 1, 9, 0, 1.1)
3.1. Thêm item vào Tuple
Tuy các phần tử trong Tuple không thể thay đổi giá trị và số lượng nhưng chúng ta có một số cách để thêm item vào Tuple.
Cách 1 – Chuyển đổi Tuple thành List
my_tuple = ("hello", 1, 9, 1.5 , "Gochocit.com")
my_list = list(my_tuple)
my_list.append("welcome")
my_tuple = tuple(my_list)
print("Add item to my_tuple:", my_tuple)
Kết quả
Add item to my_tuple: ('hello', 1, 9, 1.5, 'Gochocit.com', 'welcome')
Cách 2 – Sử dụng toán tử + và *
Chúng ta có thể sử dụng toán tử + để nối các tuple hoặc toán tử * để lặp lại các phần tử trong tuple với số lần xác định trước.
my_tuple1 = ("hello", 1, 9)
my_tuple2 = (1.5 , "Gochocit.com")
# Using operator + with tuples
my_tuple = my_tuple1 + my_tuple2
print("Using operator + with tuples:", my_tuple)
# Repeat tuple with operator *
repeat_my_tuple1 = my_tuple1 * 3
print("Repeat my_tuple1:", repeat_my_tuple1)
Kết quả
Using operator + with tuples: ('hello', 1, 9, 1.5, 'Gochocit.com')
Repeat my_tuple1: ('hello', 1, 9, 'hello', 1, 9, 'hello', 1, 9)
3.2. Xóa item khỏi Tuple
Chúng ta có thể xóa item khỏi Tuple bằng cách chuyển đổi Tuple thành List. Hoặc sử dụng từ khóa del để xóa toàn bộ Tuple.
my_tuple = ('hello', 1, 9, 1.5, 'Gochocit.com')
# Remove item by converting to list
my_list = list(my_tuple)
my_list.remove("hello")
my_tuple = tuple(my_list)
print("Remove item in tuple by converting to list:", my_tuple)
# Delete my_tuple
del my_tuple
# NameError: name 'my_tuple' is not defined
# print(my_tuple)
Kết quả
Remove item in tuple by converting to list: (1, 9, 1.5, 'Gochocit.com')