Python có một số kiểu dữ liệu tuần tự cho phép bạn lưu trữ các tập dữ liệu một cách có tổ chức và hiệu quả. Các kiểu trình tự cơ bản là string, list, tuple và range object.

Bài viết này sẽ hướng dẫn bạn những kiến ​​thức cơ bản về tuple trong Python. Tôi sẽ chỉ cho bạn cách tạo bộ tuple, truy cập các phần tử, unpacking tuple và những kiến thức khác.

Tuple tương tự như List , với sự khác biệt chính là list có thể thay đổi được trong khi Tuple là bất biến. Điều này có nghĩa là không thể thay đổi các bộ giá trị sau khi tạo.

Tuples có thể lưu trữ cả dữ liệu không đồng nhất và đồng nhất nhưng thường được sử dụng để lưu trữ các tập hợp các phần tử không đồng nhất.

Tạo Tuples

Tuple được tạo ra bằng cách đặt các item trong một cặp dấu ngoặc tròn (), được phân tách bằng dấu phẩy. Họ có thể có bất kỳ số lượng mục nào, có thể thuộc nhiều loại khác nhau. Đây là một ví dụ:

colors = ('orange', 'white', 'green')

Một bộ tuple có thể có các mục có kiểu dữ liệu hỗn hợp. Bạn cũng có thể khai báo các bộ giá trị lồng nhau trong đó một trong các mục khác của nó là list, tuple hoặc dict:

my_tuple = (1, False, ["red", "blue"], ("foo", "bar"))

Dấu ngoặc tròn không có phần tử nào ở giữa chúng biểu thị một tuple trống:

my_tuple = ()

Để tạo một bộ dữ liệu chỉ có một phần tử, bạn phải thêm dấu phẩy sau phần tử đầu tiên:

my_tuple = (1)
type(my_tuple)
my_tuple = (1,)
type(my_tuple)

Output:

<class 'int'>
<class 'tuple'>

Tuples cũng có thể được xây dựng bằng cách sử dụng hàm tuple():

colors_list = ['orange', 'white', 'green']
colors_typle = tuple(colors_list)
print(type(colors_typle))
<class 'tuple'>

Một cách khác để tạo một bộ tuple là sử dụng tính năng đóng gói tuple, cho phép bạn tạo một bộ tuple từ một chuỗi các đối tượng được phân tách bằng dấu phẩy:

directions = "North", "South", "East", "West"
print(type(directions))
<class 'tuple'>

Truy cập các phần tử Tuple

Một item có thể được tham chiếu bởi chỉ mục của nó. Chỉ số là các số nguyên và bắt đầu từ 0 đến n-1 nơi n là số hạng mục:

my_tuple = ["a", "b", "c", "d"]
             0    1    2    3

Trong Python, các chỉ mục được chỉ định bằng dấu ngoặc vuông:

my_tuple[index]

Ví dụ: để truy cập phần tử thứ ba của bộ tuple, bạn sẽ tuple_name[2]:

directions = ("North", "South", "East", "West")
directions[2]
'East'

Nếu bạn tham chiếu một chỉ mục không tồn tại, một exception IndexError sẽ được đưa ra:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

Để truy cập các mục trong một bộ tuple lồng nhau, hãy sử dụng nhiều chỉ mục:

my_tuple = (1, False, ["red", "blue"], ("foo", "bar"))
my_tuple[3][1]
'bar'

Bạn cũng có thể truy cập các phần tử tuple bằng cách sử dụng các chỉ mục phủ định. Mục cuối cùng được gọi là -1, mục cuối cùng thứ hai -2, v.v.:

my_tuple = ("a", "b", "c", "d")
            -4   -3   -2   -1
directions = ("North", "South", "East", "West")
directions[-2]
'East'

Slicing Tuples

Trong Python, bạn có thể chia nhỏ một tuple và các kiểu dữ liệu tuần tự khác bằng cách sử dụng biểu mẫu sau:

sequence[start:stop:step]
  • start là chỉ số mà tại đó quá trình trích xuất bắt đầu. Khi một chỉ mục âm được sử dụng, nó chỉ ra một khoảng chênh lệch từ phần cuối của bộ giá trị. Nếu đối số này bị bỏ qua, quá trình cắt sẽ bắt đầu từ chỉ mục 0.
  • stop là chỉ số trước khi kết thúc quá trình trích xuất; kết quả không bao gồm phần tử “stop”. Khi một chỉ mục âm được sử dụng, nó chỉ ra một khoảng chênh lệch so với phần cuối của bộ giá trị. Nếu đối số này bị bỏ qua hoặc lớn hơn độ dài của tuple, việc cắt lát sẽ đi đến cuối bộ tuple.
  • step là một đối số tùy chọn và chỉ định bước cắt. Khi không được chỉ định, nó sẽ mặc định là 1. Nếu giá trị âm được sử dụng, lát cắt sẽ nhận các phần tử theo thứ tự ngược lại.

Kết quả của việc cắt một tuple là một tuple mới chứa các phần tử được trích xuất.

Các biểu mẫu sau là hợp pháp bằng Python:

T[:] # copy whole tuple
T[start:] # slice the tuple starting from the element with index "start" to the end of the tuple.
T[:stop] # slice the tuple starting from the begging up to but not including the element with index "stop".
T[start:stop] #  slice the tuple starting from the element with index "start" up to but not including the element with index "stop".
stop"
T[::step] # slice the tuple with a stride of "step"

Dưới đây là ví dụ về cách cắt một bộ tuple bắt đầu từ phần tử có chỉ số 1 đến nhưng không bao gồm phần tử có chỉ số 4:

vegetables = ('Potatoes', 'Garlic', 'Celery', 'Carrots', 'Broccoli')
vegetables[1:4]
('Garlic', 'Celery', 'Carrots')

UnpackingTuples

Giải nén trình tự trong một tính năng Python cho phép bạn gán các đối tượng trình tự cho các biến. Đây là một ví dụ:

colors = ('orange', 'white', 'green')
a, b, c = colors
print(a)
print(b)
print(c)

Giá trị của các phần tử tuple theo vị trí của chúng, được gán cho các biến ở bên trái:

orange
white
green

Khi giải nén tuple, số lượng biến trên bộ giá trị bên trái phải giống với số phần tử bộ giá trị. Nếu không, bạn sẽ nhận được một lỗi ngoại lệ ValueError.

colors = ('orange', 'white', 'green')
a, b = colors
ValueError: too many values to unpack (expected 2)

Việc giải nén rất hữu ích khi một phương thức hoặc hàm trả về một chuỗi các đối tượng:

def square_area_circumference(side_lenght):
  return side_lenght * side_lenght, side_lenght * 4

area, circumference = square_area_circumference(5)

print(area)
print(circumference)
25
20

Thay đổi Tuple

Vì bộ giá trị là cấu trúc dữ liệu bất biến, chúng ta không thể cập nhật chúng trực tiếp. Bạn không thể thêm, thay đổi, loại bỏ các phần tử trong bộ giá trị.

Nếu bạn cố gắng thay đổi một phần tử tuple, bạn sẽ nhận được một lỗi ngoại lệ TypeError:

colors = ("orange", "white", "green")
colors[1] = "blue"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Các phần tử của một mutable tuple có thể được thay đổi. Ví dụ: nếu bộ tuple có 1 list là một trong các phần tử của nó, bạn có thể cập nhật các phần tử trong list đó:

my_tuple = (1, 2, [5, 6, 7])
my_tuple[2][1] = 4
print(my_tuple)
(1, 2, [5, 4, 7])

Tuple lengh

Hàm tích hợp len() trả về tổng số mục của một đối tượng nhất định.

Để tìm độ dài của một tuple, hãy chuyển nó làm đối số cho hàm len():

len(L)

Đây là một ví dụ:

colors = ("orange", "white", "green")
lenght = len(colors)
print(lenght)
3

Lặp lại qua một Tuple

Để lặp qua tất cả các phần tử trong một bộ tuple, bạn có thể sử dụng vòng lặp for :

directions = ("North", "South", "East", "West")
for direction in directions:
  print(direction)

Output:

North
South
East
West

Nếu bạn cần chỉ mục, bạn có một số phương pháp tùy ý. Các cách phổ biến nhất là kết hợp các hàm range() và len()hoặc sử dụng hàm tích hợp sẵn enumerate().

Ví dụ dưới đây cho thấy cách truy xuất chỉ mục và giá trị của từng mục trong bộ tuple:

directions = ("North", "South", "East", "West")
for i in range(len(directions)):
  print("Index {} : Value {}".format(i, directions[i]))

Output:

Index 0 : Value North
Index 1 : Value South
Index 2 : Value East
Index 3 : Value West

Thay vì sử dụng range(len(...)), bạn có thể sử dụng hàm enumerate()để lặp qua một tuple theo cách Pythonic hơn:

directions = ("North", "South", "East", "West")
for index, value in enumerate(directions): 
  print("Index {} : Value {}".format(index, value))

Output:

Index 0 : Value North
Index 1 : Value South
Index 2 : Value East
Index 3 : Value West

Kiểm tra xem một phần tử có tồn tại không

Để kiểm tra xem một phần tử có tồn tại trong một bộ hay không, bạn có thể sử dụng toán tử invà not in:

colors = ("orange", "white", "green")
print("orange" in colors)

Đầu ra sẽ là True hoặc False:

True

Đây là một ví dụ khác sử dụng câu lệnh if :

colors = ("orange", "white", "green")
if "blue" not in colors:
  print("no")
else:
  print("yes")

Output:

no

Tuple Method

Đối tượng tuple chấp nhận các phương thức sau:

  • count(x) – Trả về số lần ‘x’ xuất hiện trong bộ giá trị.
  • index(x) – Trả về vị trí xuất hiện đầu tiên của phần tử có giá trị là ‘x’.

Dưới đây là một ví dụ đơn giản cho thấy cách sử dụng các phương thức:

my_tuple = ("a", "s", "s", "q", "a", "n")
print(my_tuple.count('a'))
print(my_tuple.index('a'))

Output:

2
0

Phần kết luận

Chúng ta đã tìm hiểu qua cách sử dụng Tuple trong python.

Nếu bạn có bất kỳ câu hỏi hoặc phản hồi nào, vui lòng để lại bình luận.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments