Tuple Python có thể lồng nhau. Chúng ta có thể có một tuple mà các phần tử của nó cũng là tuple. Bài viết này trình bày cách tìm ra xem một giá trị cho trước có hiện diện như một phần tử trong tuple của các tuple hay không.
Sử dụng any
Hàm any có thể dùng để kiểm tra xem một giá trị cho trước có hiện diện như một phần tử trong bất kỳ subtuple nào có trong tuple, với sự giúp đỡ của vòng lặp for. Ta đặt toàn bộ điều kiện kiểm tra trong mệnh đề if và else.
Ví dụ
Atuple = [('Mon',10),('Tue',8),('Wed',8),('Thu',5)] #Tuple cho trước print("Tuple cho trước: ",Atuple) # Sử dụng any if any('Tue' in i for i in Atuple): print("có mặt") else : print("Không có mặt") if any(3 in i for i in Atuple): print("có mặt") else : print("Không có mặt")Kết quả
Chạy mã trên cho kết quả sau −
Tuple cho trước: [('Mon', 10), ('Tue', 8), ('Wed', 8), ('Thu', 5)] có mặt Không có mặtSử dụng itertools.chain
Hàm chain trong module itertools trả về các phần tử từ iterable đầu tiên cho đến khi cạn kiệt, sau đó chuyển sang iterable tiếp theo, cho đến khi tất cả iterables đều cạn kiệt. Vì vậy, ta dùng nó với tuple cho trước, mở rộng toàn bộ nội dung và kiểm tra sự hiện diện của giá trị yêu cầu bằng mệnh đề if.
Ví dụ
import itertools Atuple = (('Mon',10),('Tue',8),('Wed',8),('Thu',5)) #Tuple cho trước print("Tuple cho trước: ",Atuple) # Sử dụng chain if ('Wed' in itertools.chain(*Atuple)) : print("Wed có mặt") else : print("Wed không có mặt") if (11 in itertools.chain(*Atuple)) : print("11 có mặt") else : print("11 không có mặt")Kết quả
Chạy mã trên cho kết quả sau −
Tuple cho trước: (('Mon', 10), ('Tue', 8), ('Wed', 8), ('Thu', 5)) Wed có mặt 11 không có mặt