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

Python - Kiểm tra từ khóa xuất hiện cùng nhau trong danh sách câu

Cho danh sách chứa câu ngắn. Danh sách khác chứa từ khóa. Kiểm tra xem hai từ khóa có xuất hiện cùng nhau trong bất kỳ câu nào của danh sách đầu không.

Dùng append và for loop

Duyệt câu, kiểm tra từ khóa có trong câu không, dùng len so sánh.

Ví dụ

list_sen = ['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
list_wrd = ['Eggs', 'Fruits']
print("Danh sách câu:\n", list_sen)
print("Danh sách từ:\n", list_wrd)
res = []
for x in list_sen:
    k = [w for w in list_wrd if w in x]
    if len(k) == len(list_wrd):
        res.append(x)
print(res)

Kết quả

['Eggs and Fruits on Wednesday']

Dùng all

Kiểm tra tất cả từ khóa có trong câu bằng all().

Ví dụ

list_sen = ['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
list_wrd = ['Eggs', 'Fruits']
res = [all(k in s for k in list_wrd) for s in list_sen]
print([list_sen[i] for i in range(len(res)) if res[i]])

Kết quả

['Eggs and Fruits on Wednesday']

Dùng lambda và map

Tương tự nhưng dùng lambda + map + split.

Ví dụ

list_sen = ['Eggs on Sunday', 'Fruits on Monday', 'Eggs and Fruits on Wednesday']
list_wrd = ['Eggs', 'Fruits']
res = list(map(lambda i: all(map(lambda j: j in i.split(), list_wrd)), list_sen))
print([list_sen[i] for i in range(len(res)) if res[i]])

Kết quả

['Eggs and Fruits on Wednesday']