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ưlist
và 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)
Tuple
có 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'>
Tuple
là một đối tượng immutable
Tuple
có 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
tuple
lạ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
Tuple
không phải hoàn toàn là một đối tượngimmutable
.Tuple
là một đối tượngimmutable
nhưng không phải luôn luôn như vậy. Giá trị củatuple
có thể thay đổi nếu như trongtuple
có chứa một đối tượngmutable
và lúc đótuple
trở 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
tuple
mà chỉ có thể xóa toàn bộtuple
bằ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ử
in
hoặ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ònlist
cho các kiểu giống nhau.
- Vì
tuple
và đối tượngimmuatble
nên việc lặp quatuple
nhanh hơn so với danh sách, nên có thể tăng hiệu suất.
- Các
tuple
chứa các phần tử dữ liệuimmutable
có thể sử dụng làm khóa chodictionary
cònlist
thì 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
tuple
sẽ đả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:

No comments: