Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra phần tử tồn tại trong danh sách các danh sách trong Python


Danh sách có thể lồng nhau, nghĩa là các phần tử của một danh sách bản thân là các danh sách. Bài viết này trình bày cách tìm ra xem một phần tử cho trước có hiện diện trong các danh sách con (là phần tử của danh sách lớn hơn) hay không.

Sử dụng any

Chúng ta trước tiên tìm kiếm xem một phần tử có hiện diện trong danh sách con và nếu danh sách con đó hiện diện trong danh sách lớn. Nếu bất kỳ điều kiện nào đúng, ta có thể nói phần tử đó hiện diện trong danh sách.

Ví dụ

listA = [[-9, -1, 3], [11, -8],[-4,434,0]] search_element = -8 # Danh sách cho trước print("Danh sách cho trước :\n", listA) print("Phần tử cần tìm: ",search_element) # Sử dụng in if any(search_element in sublist for sublist in listA):    print("Có mặt") else:    print("Không có mặt")

Kết quả

Chạy mã trên cho kết quả sau −

('Danh sách cho trước :\n', [[-9, -1, 3], [11, -8], [-4, 434, 0]]) ('Phần tử cần tìm: ', -8) Có mặt

Sử dụng in

Trong cách này, ta thực hiện tìm kiếm đơn giản bằng toán tử in. Nếu mục là một phần của danh sách con mà cũng là một phần của danh sách bên ngoài, ta chấp nhận phần tử đó có mặt. Ta thực hiện hai kiểm tra: một cho sự hiện diện và một cho sự vắng mặt.

Ví dụ

listA = [[-9, -1, 3], [11, -8],[-4,434,0]] search_element = -8 # Danh sách cho trước print("Danh sách cho trước :\n", listA) print("Phần tử cần tìm: ",search_element) # Sử dụng in if search_element in (item for sublist in listA for item in sublist):    print("Có mặt") else:    print("Không có mặt") search_element = 13 print("Phần tử mới cần tìm: ",search_element) # Sử dụng in if search_element in (item for sublist in listA for item in sublist):    print("Có mặt") else:    print("Không có mặt")

Kết quả

Chạy mã trên cho kết quả sau −

Danh sách cho trước : [[-9, -1, 3], [11, -8], [-4, 434, 0]] Phần tử cần tìm: -8 Có mặt Phần tử mới cần tìm: 13 Không có mặt

Sử dụng chain

Với phương thức chain từ module itertools, ta có thể mở rộng các danh sách của danh sách con và tiếp tục kiểm tra sự hiện diện của một phần tử bằng phương thức in.

Ví dụ

from itertools import chain listA = [[-9, -1, 3], [11, -8],[-4,434,0]] search_element = -8 # Danh sách cho trước print("Danh sách cho trước :\n", listA) print("Phần tử cần tìm: ",search_element) # Sử dụng in if search_element in chain(*listA):    print("Có mặt") else:    print("Không có mặt") search_element = 13 print("Phần tử mới cần tìm: ",search_element) # Sử dụng in if search_element in chain(*listA):    print("Có mặt") else:    print("Không có mặt")

Kết quả

Chạy mã trên cho kết quả sau −

Danh sách cho trước : [[-9, -1, 3], [11, -8], [-4, 434, 0]] Phần tử cần tìm: -8 Có mặt Phần tử mới cần tìm: 13 Không có mặt