Python - Tuples
Một bộ tuple là một tập hợp các đối tượng có thứ tự và bất biến. Tuples là các chuỗi, giống như danh sách. Sự khác biệt giữa bộ giá trị và danh sách là, bộ giá trị không thể thay đổi không giống như danh sách và bộ giá trị sử dụng dấu ngoặc đơn, trong khi danh sách sử dụng dấu ngoặc vuông.
Tạo một bộ giá trị cũng đơn giản như đặt các giá trị được phân tách bằng dấu phẩy khác nhau. Bạn có thể tùy ý đặt các giá trị được phân tách bằng dấu phẩy này giữa các dấu ngoặc đơn. Ví dụ -
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
Bộ giá trị trống được viết dưới dạng hai dấu ngoặc đơn không chứa gì -
tup1 = ();
Để viết một bộ giá trị chứa một giá trị duy nhất, bạn phải bao gồm dấu phẩy, mặc dù chỉ có một giá trị -
tup1 = (50,);
Giống như chỉ số chuỗi, chỉ số tuple bắt đầu từ 0 và chúng có thể được cắt, nối, v.v.
Truy cập giá trị trong Tuples
Để truy cập các giá trị trong bộ tuple, hãy sử dụng dấu ngoặc vuông để cắt cùng với chỉ mục hoặc các chỉ mục để lấy giá trị có sẵn tại chỉ mục đó. Ví dụ -
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7 );
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]
Đang cập nhật Tuples
Tuple là bất biến có nghĩa là bạn không thể cập nhật hoặc thay đổi giá trị của các phần tử tuple. Bạn có thể lấy các phần của các bộ giá trị hiện có để tạo các bộ giá trị mới như ví dụ sau minh họa:
#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# Following action is not valid for tuples
# tup1[0] = 100;
# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
(12, 34.56, 'abc', 'xyz')
Xóa phần tử Tuple
Không thể xóa các phần tử tuple riêng lẻ. Tất nhiên, không có gì sai khi kết hợp một bộ dữ liệu khác với các phần tử không mong muốn bị loại bỏ.
Để loại bỏ rõ ràng toàn bộ bộ, chỉ cần sử dụng deltuyên bố. Ví dụ -
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;
Điều này tạo ra kết quả sau. Lưu ý rằng một ngoại lệ được nêu ra, điều này là do saudel tup tuple không tồn tại nữa -
('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
File "test.py", line 9, in <module>
print tup;
NameError: name 'tup' is not defined
Thao tác Tuples cơ bản
Tuples phản hồi các toán tử + và * giống như các chuỗi; chúng có nghĩa là nối và lặp lại ở đây, ngoại trừ kết quả là một bộ giá trị mới, không phải một chuỗi.
Trên thực tế, các bộ giá trị đáp ứng tất cả các hoạt động trình tự chung mà chúng tôi đã sử dụng trên các chuỗi trong chương trước -
Biểu thức Python | Các kết quả | Sự miêu tả |
---|---|---|
len ((1, 2, 3)) | 3 | Chiều dài |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | Kết nối |
('Xin chào!',) * 4 | ("Xin chào!", "Xin chào!", "Xin chào!", "Xin chào!") | Sự lặp lại |
3 trong (1, 2, 3) | Thật | Tư cách thành viên |
for x in (1, 2, 3): print x, | 1 2 3 | Lặp lại |
Lập chỉ mục, Slicing và Ma trận
Bởi vì các bộ giá trị là các chuỗi, việc lập chỉ mục và phân loại hoạt động theo cùng một cách đối với các bộ giá trị như chúng làm cho các chuỗi. Giả sử đầu vào sau -
L = ('spam', 'Spam', 'SPAM!')
Biểu thức Python | Các kết quả | Sự miêu tả |
---|---|---|
L [2] | 'THƯ RÁC!' | Offsets bắt đầu từ 0 |
L [-2] | 'Thư rác' | Phủ định: đếm từ bên phải |
L [1:] | ['Spam', 'SPAM!'] | Slicing tìm nạp các phần |
Không có dấu phân cách bao quanh
Bất kỳ tập hợp nhiều đối tượng, được phân tách bằng dấu phẩy, được viết mà không có ký hiệu xác định, tức là, dấu ngoặc cho danh sách, dấu ngoặc cho bộ giá trị, v.v., mặc định là bộ giá trị, như được chỉ ra trong các ví dụ ngắn này -
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x,y;
Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
Chức năng Tuple Tích hợp
Python bao gồm các hàm tuple sau:
Sr.No. | Chức năng với Mô tả |
---|---|
1 | cmp (tuple1, tuple2) So sánh các phần tử của cả hai bộ giá trị. |
2 | len (tuple) Cung cấp tổng chiều dài của tuple. |
3 | max (tuple) Trả về mục từ bộ giá trị lớn nhất. |
4 | tối thiểu (tuple) Trả về mục từ bộ giá trị nhỏ nhất. |
5 | tuple (seq) Chuyển đổi một danh sách thành nhiều bộ. |