Tuple trong Python


Hôm nay ta sẽ tìm hiểu về tuple. Tuple cũng giống như list nhưng tuple không thay đổi được giá trị giống như list.

Ta tạo một tuple như sau.

my_tuple = (1, 2, 3)

print(my_tuple)  # (1, 2, 3)

Tìm xem tuple có bao nhiêu phần tử cũng giống list.

print(len(my_tuple))  # 3

Ta có thể truy cập vào các phần tử của tuple cũng giống như list.

print(my_tuple[0:2])  # (1,2)
print(my_tuple[-2:])  # (2,3)
print(my_tuple[-1])  # 3

Ta tạo một tuple rỗng.

my_tuple_2 = ()

Ta gán giá trị cho tuple.

my_tuple_2 = (1, 2, 3, 4, 5)
print(my_tuple_2)   # (1, 2, 3, 4, 5)

Ta có thể gán lại giá trị cho tuple.

my_tuple_2 = (1, 2)
print(my_tuple_2)  # (1, 2)

Nhưng ta không thể thay đổi giá trị của các phần tử của tuple.

my_tuple_2[0] = 2

Sẽ báo lỗi.

Nhưng nếu tuple có phần tử là 1 list thì ta có thể thay đổi giá trị bên trong list. Ta xem ví dụ sau.

my_tuple3 = (1, 'hello', [1, 2], True)

print(my_tuple3[0])  # 1
print(my_tuple3[2][1]) # 2

my_tuple3[2][1] = 10
print(my_tuple3[2][1])  # 10

Ta có thể delete một tuple.

del my_tuple3
print(my_tuple3)
#  NameError: name 'my_tuple3' is not defined

Nếu tuple có 1 phần tử thì sau.

my_tuple4 = ('hello world')
print(type(my_tuple4))  # <class 'str'>

Ta thấy my_tuple4 là 1 string không phải là tuple. Để định nghĩa 1 tuple có 1 phần tử ta làm như sau.

my_tuple4 = ('hello world',)
print(type(my_tuple4))  # <class 'tuple'>

Ta có thể cộng 2 tuple lại với nhau.

my_tuple5 = (1, 2, 3)
my_tuple6 = (4, 5, 6)

result = my_tuple5 + my_tuple6
print(result)  # (1, 2, 3, 4, 5, 6)

Hoặc kiểm tra 1 phần tử có nằm trong tuple hay không

my_tuple7 = ('hello', 'world')

print('hello' in my_tuple7)  # True
print('2020' not in my_tuple7)  # True

Còn loop qua tuple thì sao?

my_tuple = (1, 2, 3)
for item in my_tuple:
    print(item)

# 1
# 2
# 3

Còn nếu muốn loop qua tuple có kèm theo index ta làm như sau.

for item in my_tuple:
    print("key = " + str(my_tuple.index(item)) + " Value = " + str(item))
# key = 0 Value = 1
# key = 1 Value = 2
# key = 2 Value = 3

my_tuple.index(item) sẽ trả về index của phần tử item trong tuple. Tuple học trong 1 nốt nhạc ^_^