Python Tuple (Có ví dụ)

Trong bài viết này, bạn sẽ tìm hiểu mọi thứ về bộ giá trị Python. Cụ thể hơn, bộ giá trị là gì, cách tạo chúng, khi nào sử dụng chúng và các phương pháp khác nhau mà bạn nên làm quen.

Video: Danh sách Python và Tuples

Một tuple trong Python tương tự như một danh sách. Sự khác biệt giữa cả hai là chúng ta không thể thay đổi các phần tử của một tuple khi nó được gán trong khi chúng ta có thể thay đổi các phần tử của một danh sách.

Tạo một Tuple

Một bộ giá trị được tạo ra bằng cách đặt tất cả các mục (phần tử) bên trong dấu ngoặc đơn (), phân tách bằng dấu phẩy. Các dấu ngoặc đơn là tùy chọn, tuy nhiên, bạn nên sử dụng chúng.

Một bộ tuple có thể có bất kỳ số lượng mục nào và chúng có thể thuộc các kiểu khác nhau (số nguyên, số nổi, danh sách, chuỗi, v.v.).

 # Different types of tuples # Empty tuple my_tuple = () print(my_tuple) # Tuple having integers my_tuple = (1, 2, 3) print(my_tuple) # tuple with mixed datatypes my_tuple = (1, "Hello", 3.4) print(my_tuple) # nested tuple my_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) print(my_tuple)

Đầu ra

 () (1, 2, 3) (1, 'Xin chào', 3.4) ('chuột', (8, 4, 6), (1, 2, 3))

Một bộ cũng có thể được tạo mà không cần sử dụng dấu ngoặc đơn. Đây được gọi là đóng gói tuple.

 my_tuple = 3, 4.6, "dog" print(my_tuple) # tuple unpacking is also possible a, b, c = my_tuple print(a) # 3 print(b) # 4.6 print(c) # dog

Đầu ra

 (3, 4,6, 'con chó') 3 4,6 con chó

Tạo một bộ giá trị với một phần tử là một chút khó khăn.

Có một phần tử trong dấu ngoặc đơn là không đủ. Chúng ta sẽ cần một dấu phẩy ở cuối để chỉ ra rằng trên thực tế, nó là một bộ giá trị.

 my_tuple = ("hello") print(type(my_tuple)) # # Creating a tuple having one element my_tuple = ("hello",) print(type(my_tuple)) # # Parentheses is optional my_tuple = "hello", print(type(my_tuple)) # 

Đầu ra

 

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

Có nhiều cách khác nhau mà chúng ta có thể truy cập các phần tử của một bộ tuple.

1. Lập chỉ mục

Chúng ta có thể sử dụng toán tử chỉ mục ()để truy cập một mục trong bộ tuple, trong đó chỉ mục bắt đầu từ 0.

Vì vậy, một tuple có 6 phần tử sẽ có các chỉ số từ 0 đến 5. Cố gắng truy cập vào một chỉ mục bên ngoài phạm vi chỉ mục của tuple (6,7,… trong ví dụ này) sẽ tăng một IndexError.

Chỉ mục phải là một số nguyên, vì vậy chúng ta không thể sử dụng float hoặc các kiểu khác. Điều này sẽ dẫn đến TypeError.

Tương tự như vậy, các bộ giá trị lồng nhau được truy cập bằng cách sử dụng lập chỉ mục lồng nhau, như thể hiện trong ví dụ bên dưới.

 # Accessing tuple elements using indexing my_tuple = ('p','e','r','m','i','t') print(my_tuple(0)) # 'p' print(my_tuple(5)) # 't' # IndexError: list index out of range # print(my_tuple(6)) # Index must be an integer # TypeError: list indices must be integers, not float # my_tuple(2.0) # nested tuple n_tuple = ("mouse", (8, 4, 6), (1, 2, 3)) # nested index print(n_tuple(0)(3)) # 's' print(n_tuple(1)(1)) # 4

Đầu ra

 điểm 4

2. Lập chỉ mục tiêu cực

Python cho phép lập chỉ mục âm cho các chuỗi của nó.

Chỉ số -1 đề cập đến mục cuối cùng, -2 đến mục cuối cùng thứ hai, v.v.

 # Negative indexing for accessing tuple elements my_tuple = ('p', 'e', 'r', 'm', 'i', 't') # Output: 't' print(my_tuple(-1)) # Output: 'p' print(my_tuple(-6))

Đầu ra

 tp

3. Cắt lát

Chúng ta có thể truy cập một loạt các mục trong một bộ bằng cách sử dụng dấu hai chấm của toán tử cắt :.

 # Accessing tuple elements using slicing my_tuple = ('p','r','o','g','r','a','m','i','z') # elements 2nd to 4th # Output: ('r', 'o', 'g') print(my_tuple(1:4)) # elements beginning to 2nd # Output: ('p', 'r') print(my_tuple(:-7)) # elements 8th to end # Output: ('i', 'z') print(my_tuple(7:)) # elements beginning to end # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple(:))

Đầu ra

 ('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r ',' a ',' m ',' i ',' z ')

Việc cắt lát có thể được hình dung tốt nhất bằng cách xem xét chỉ số nằm giữa các phần tử như hình dưới đây. Vì vậy, nếu chúng ta muốn truy cập một phạm vi, chúng ta cần chỉ mục sẽ cắt phần từ tuple.

Phần tử Slicing trong Python

Thay đổi Tuple

Không giống như danh sách, bộ giá trị là bất biến.

Điều này có nghĩa là các phần tử của một bộ không thể thay đổi khi chúng đã được gán. Tuy nhiên, nếu bản thân phần tử là một kiểu dữ liệu có thể thay đổi như danh sách, các mục lồng nhau của nó có thể được thay đổi.

Chúng ta cũng có thể gán một bộ giá trị cho các giá trị khác nhau (gán lại).

 # Changing tuple values my_tuple = (4, 2, 3, (6, 5)) # TypeError: 'tuple' object does not support item assignment # my_tuple(1) = 9 # However, item of mutable element can be changed my_tuple(3)(0) = 9 # Output: (4, 2, 3, (9, 5)) print(my_tuple) # Tuples can be reassigned my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') print(my_tuple)

Đầu ra

 (4, 2, 3, (9, 5)) ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')

We can use + operator to combine two tuples. This is called concatenation.

We can also repeat the elements in a tuple for a given number of times using the * operator.

Both + and * operations result in a new tuple.

 # Concatenation # Output: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6)) # Repeat # Output: ('Repeat', 'Repeat', 'Repeat') print(("Repeat",) * 3)

Output

 (1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')

Deleting a Tuple

As discussed above, we cannot change the elements in a tuple. It means that we cannot delete or remove items from a tuple.

Deleting a tuple entirely, however, is possible using the keyword del.

 # Deleting tuples my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z') # can't delete items # TypeError: 'tuple' object doesn't support item deletion # del my_tuple(3) # Can delete an entire tuple del my_tuple # NameError: name 'my_tuple' is not defined print(my_tuple)

Output

 Traceback (most recent call last): File "", line 12, in NameError: name 'my_tuple' is not defined

Tuple Methods

Methods that add items or remove items are not available with tuple. Only the following two methods are available.

Some examples of Python tuple methods:

 my_tuple = ('a', 'p', 'p', 'l', 'e',) print(my_tuple.count('p')) # Output: 2 print(my_tuple.index('l')) # Output: 3

Output

 2 3

Other Tuple Operations

1. Tuple Membership Test

We can test if an item exists in a tuple or not, using the keyword in.

 # Membership test in tuple my_tuple = ('a', 'p', 'p', 'l', 'e',) # In operation print('a' in my_tuple) print('b' in my_tuple) # Not in operation print('g' not in my_tuple)

Output

 True False True

2. Iterating Through a Tuple

We can use a for loop to iterate through each item in a tuple.

 # Using a for loop to iterate through a tuple for name in ('John', 'Kate'): print("Hello", name)

Output

 Hello John Hello Kate

Advantages of Tuple over List

Since tuples are quite similar to lists, both of them are used in similar situations. However, there are certain advantages of implementing a tuple over a list. Below listed are some of the main advantages:

  • Chúng tôi thường sử dụng bộ giá trị cho các kiểu dữ liệu không đồng nhất (khác nhau) và danh sách cho các kiểu dữ liệu đồng nhất (tương tự).
  • Vì các bộ giá trị là bất biến, nên việc lặp qua một bộ giá trị sẽ nhanh hơn so với danh sách. Vì vậy, có một hiệu suất tăng nhẹ.
  • Các bộ dữ liệu có chứa các phần tử bất biến có thể được sử dụng làm khóa cho từ điển. Với danh sách, điều này là không thể.
  • Nếu bạn có dữ liệu không thay đổi, việc triển khai nó dưới dạng tuple sẽ đảm bảo rằng nó vẫn được bảo vệ chống ghi.

thú vị bài viết...