Tuple trong Python
Python cũng cấp một loại lưu trữ dữ liệu nữa là
tuple tương tự với kiểu list nhưng có một vài đặc điểm khác biệt được nói sau đây.Các đặc tính của kiểu dữ liệu tuple
- Các
tupleđược xác định bằng cách đặt các phần tử trong ngoặc đơn (()) thay vì ngoặc vuông nhưlistvà các nhau bởi dấu phẩy (,) như sau:
(<value_1>, <value_2>, ....., <value_n>)
- Sử dụng
constructor Tupleđể khởi tạotuple
>>> a = tuple([1, 2, 3])
>>> a
(1, 2, 3)
>>> b = tuple(i for in in range(10) if i%2 == 0)
>>> b
(0, 2, 4, 6, 8)
Tuplecó khả năng chứa mọi loại đối tượng trong Python.
>>> a = (1, 'hello', [1, 2, 3], {'a':1, 'b': 2})
>>> type(a)
#<class 'tuple'>
Tuplelà một đối tượng immutable
Tuplecó thể lập chỉ mục (slice) như với kiểulist. Một số ví dụ:
>>> a = (1, 2, 3, 4, 5)
>>> type(a)
#<class 'tuple'>
>>> a[0]
1
>>> a[1::2]
(2, 4)
>>> a[::-1]
(5, 4, 3, 2, 1)
- Tuy nhiên
tuplelại không thể sửa đổi được
>>> a = (1, 2, 3, 4, 5)
>>> a[0] = 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Tuplekhông phải hoàn toàn là một đối tượngimmutable.Tuplelà một đối tượngimmutablenhưng không phải luôn luôn như vậy. Giá trị củatuplecó thể thay đổi nếu như trongtuplecó chứa một đối tượngmutablevà lúc đótupletrở thành 1 đối tượngmutable
>>> a = (1, 2, [3, 4])
>>> a[2][0] = 2
>>> a
(1, 2, [2, 4])
- Chúng ta không thể xóa từng phần tử của
tuplemà chỉ có thể xóa toàn bộtuplebằng lệnhdel
>>> a = (1, 2, 3, 4, 5)
>>> del a[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object doesn't support item deletion'
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
Các toán tử trong tuple
- Toán tử
+
+ để nối 2 hay nhiều tuple với nhau tượng tự như kiểu string>>> a = (1, 2, 3, 4, 5)
>>> b = (6, 7, 8, 9)
>>> a + b
(1, 2, 3, 4, 5, 6, 7, 8, 9)
- Toán tử
*
>>> a = (1, 2, 3, 4, 5)
>>> a*2
(1, 2, 3, 4, 5, 1, 2, 3, 4, 5)
- Toán tử
inhoặcnot in
>>> a = (1, 2, 3, 4, 5)
>>> 1 in a
True
>>> 5 not in a
False
- Toán tử
==và!=
tuple với nhau>>> a = (1, 2, 3)
>>> b = tuple(i for i in range(1,4))
>>> a == b
True
>>> a != b
False
Các ưu điểm của tuple so với list
Tupleđược sử dụng cho các kiểu dữ liệu khác nhau cònlistcho các kiểu giống nhau.
- Vì
tuplevà đối tượngimmuatblenên việc lặp quatuplenhanh hơn so với danh sách, nên có thể tăng hiệu suất.
- Các
tuplechứa các phần tử dữ liệuimmutablecó thể sử dụng làm khóa chodictionarycònlistthì không thể.
- Nếu bạn có dữ liệu không thay đổi, thì việc triển khai nó dưới dạng
tuplesẽ đảm bảo nó không thể bị sửa đổi.
Các phương thức trong tuple
| Phương thức | Miêu tả |
|---|---|
| tuple.count(x) | Trả về số lần x được tìm thấy trong tuple |
| tuple.index(x) | Trả về số chỉ mục đầu tiên bằng x được tìm thấy |
>>> tuple_a = ('a', 'b', 'c', 'd', 'a')
>>> tuple_a.count('a')
2
>>> tuple_a.index('b')
1
Các hàm tích hợp python với tuple
| Hàm | Miêu tả |
|---|---|
| all() | Trả về True nếu tất cả các phần tử của tuple là True hoặc tuple rỗng |
| any() | Trả về False nếu bất kì phần tử của tuple là True , nếu tuple rỗng trả về False |
| enumerate() | Trả về một đối tượng liệt kê. Nó chỉ chứa số và giá trị của tất cả các mục tuple dưới dạng cặp |
| len() | Trả về độ dài của tuple |
| max() | Trả về mục lớn nhất trong tuple |
| min() | Trả về mục nhỏ nhất trong tuple |
| sorted() | Trả về một danh sách mới được sắp xếp của tuple, danh sách cũ không đổi. |
| sum() | Trả về tổng của tất cả các phần tử trong tuple |
| tuple() | Chuyển đổi một iterable (list, string, set, dict) thành một tuple. |
Tag:
Python cơ bản
Tuple trong Python
Reviewed by Finn
on
December 17, 2018
Rating:
Reviewed by Finn
on
December 17, 2018
Rating:


No comments: