Tuple
Một bộ là một danh sách bất biến. Không thể sửa đổi một bộ theo bất kỳ cách nào sau khi nó đã được tạo.
Tại sao bộ dữ liệu cần thiết?
- Trong trường hợp bảo vệ bất kỳ dữ liệu nào khỏi những thay đổi (cố ý hoặc vô tình).
- Bộ chiếm ít dung lượng bộ nhớ hơn và nhanh hơn danh sách.
- Để trả về nhiều giá trị từ một hàm.
- Các bộ dữ liệu có thể được sử dụng làm khóa từ điển (sẽ nói thêm về điều đó sau).
Tạo bộ dữ liệu
1 cách: giống như một danh sách, nhưng có dấu ngoặc đơn
1
2
3
|
một = (1,2,3,4,5)
in(loại(a)) # lớp 'tuple'
in(a) # (1, 2, 3, 4, 5)
|
2 chiều: sử dụng hàm tuple()
1
2
3
|
b = tuple((1,2,3,4,5))
in(loại(b)) # <lớp 'tuple'>
in(b) # (1, 2, 3, 4, 5)
|
Bạn phải nhớ!
- Các bộ dữ liệu là một danh sách bất biến.
- Các phần tử của một bộ có thể thuộc nhiều loại khác nhau.
- Bạn có thể tạo một bộ bằng cách sử dụng hàm
tuple() hoặc bằng cách liệt kê các phần tử trong ngoặc đơn.
|
Tính năng Tuple
1) Bạn có thể gán giá trị cho một bộ mà không cần sử dụng dấu ngoặc đơn/
Ví dụ, bạn có thể tạo một tuple như thế này:
1
2
3
|
a = 1,2,3,4,5
print(a[3]) # 4 Một phần tử của bộ có thể được truy cập giống như một phần tử của danh sách,
# bằng cách chỉ định chỉ mục phần tử trong ngoặc vuông.
|
2) Để khai báo một bộ bao gồm một phần tử duy nhất, bạn cần sử dụng dấu phẩy ở cuối:
1
2
3
4
|
a = 'a'
b = 'b',
print(type(b)) # <lớp 'tuple'>
print(type(a)) # <lớp 'str'>
|
3) Bạn có thể gán giá trị của các phần tử của bộ cho các biến riêng lẻ:
1
2
3
|
my_tuple = (1, 2, 3, 4, 5)
a, b, c, d, e = my_tuple
in(c) #3
|
Dấu gạch dưới _ có thể được sử dụng làm biến không cần thiết
1
2
3
|
my_tuple = (1, 2, 3)
a, _, _ = my_tuple
in(a) #1
|
Số biến phải khớp với số của các phần tử của bộ!
4) Một bộ có thể chứa nhiều phần tử lồng nhau. Trong trường hợp này, khi đề cập đến các phần tử lồng nhau, bạn phải sử dụng thêm dấu ngoặc vuông
1
2
|
my_tuple = (('a', 'b', 'c'), [1, 2], ((1, 'a' ), ('b', 'c')))
in(my_tuple[2][1]) # ('b', 'c')
|
|
Đề cập đến các phần tử. Bộ dữ liệu lồng nhau
Bộ có thể chứa các bộ khác làm phần tử. Ngoài ra, danh sách, chuỗi, v.v. có thể được sử dụng làm phần tử của bộ.
Truy cập các phần tử tương tự như truy cập các phần tử của danh sách, chỉ định chỉ mục của phần tử trong dấu ngoặc vuông. Lập chỉ mục bắt đầu từ con số không.
Khi đề cập đến các phần tử lồng nhau, phải sử dụng thêm dấu ngoặc vuông.
my_tuple = (('a', 'b', 'c'), [1, 2], ((1, 'a' ), ('b', 'c')))
in(my_tuple[2][1]) # ('b', 'c')
|
So sánh các bộ
Khi so sánh các bộ:
- các số được so sánh theo giá trị;
- chuỗi theo thứ tự từ điển;
- trường hợp các phần tử có cùng vị trí bằng nhau thì so sánh các phần tử sau;
- so sánh các phần tử sẽ xảy ra cho đến bất đẳng thức đầu tiên;
- khi so sánh các phần tử phải cùng loại (không thể so sánh số và chuỗi).
Ví dụ
1
2
3
4
5
6
7
số 8
9
10
mười một
12
|
MỘT=4
B=8
C = 'a',
D = 'z',
E = (14, 'tối đa', 'tối thiểu')
F = (14, 'tối đa', 'tối thiểu')
K=999
in(A < B) # Đúng
in(C < D) # Đúng
in(E > F) # Đúng
in(K < F) # Sai
in(C < K) # TypeError: '<' không được hỗ trợ
# giữa các phiên bản của 'str' và 'int'
|
|
Lát
Cắt lát có thể được thực hiện tương tự như danh sách.
Cần nhớ rằng bằng cách lấy một phần tử theo chỉ mục hoặc theo lát ( slice ), chúng tôi không thay đổi bộ theo bất kỳ cách nào, chúng tôi chỉ sao chép một phần của nó để sử dụng tiếp (ví dụ: để in , một số tính toán, v.v. .p.).
Cú pháp lát cắt
my_tuple[start:stop:step] # bắt đầu, dừng và bước
|
Nối bộ
Có thể nối các bộ dữ liệu để tạo một đối tượng mới (nối, tương tự như chuỗi).
1
2
3
4
|
x = (1,2,3,4)
y = (5,6,7,8)
z = x + y
print(z) # (1, 2, 3, 4, 5, 6, 7, 8)
|
Trong phép toán nhân, bộ dữ liệu được lặp lại nhiều lần (tương tự như phép nhân chuỗi).
1
2
3
|
x = (1,2,3,4)
z = x*2
in(z) # (1, 2, 3, 4, 1, 2, 3, 4)
|
Xóa một bộ
Các thao tác và phương thức Tuple tương tự như các thao tác và phương thức danh sách. Ngoại trừ những thứ làm thay đổi các phần tử của một bộ.
Không thể thêm hoặc bớt một phần tử chứa trong tuple do tính bất biến. Tuy nhiên, bản thân bộ dữ liệu có thể bị xóa bằng toán tử del .
1
2
|
sinh viên = (2007, 'Ivan', 'Ivanov', '9-A', Sai)
xóa sinh viên
|
|
Các phương thức làm việc với bộ dữ liệu
Các phương thức làm việc với bộ dữ liệu tương tự như các phương thức làm việc với danh sách, ngoại trừ các phương thức thay đổi bộ dữ liệu. Các phương thức như vậy không khả dụng do tính bất biến của bộ dữ liệu. Chúng có thể được áp dụng bằng cách tạo một bộ dữ liệu mới.
Ví dụ sắp xếp theo bộ
Bạn có thể dễ dàng sắp xếp một bộ bằng hàm sorted() .
1
2
3
4
|
a = (5, 3, 2, 1, 4)
in(đã sắp xếp(a)) # [1, 2, 3, 4, 5]
a = tuple(sắp xếp(a))
in(a) # (1, 2, 3, 4, 5)
|
Lưu ý rằng các phương thức như append() , extend() , remove() KHÔNG hoạt động với các bộ và pop() .
|