Добро пожаловать в Stack Overflow
Попробуйте это решение:
listwords = [['people','suffering','acute'], ['Covid-19','Corona','like'], ['people','must','collectively']]
listsent = ['The number of people suffering acute hunger could almost double.',
'Lockdowns and global economic recession have',
'one more shock – like Covid-19 – to push them over the edge',
'people must collectively act now to mitigate the impact']
# interate through each sentence
for sentence in listsent:
# iterate through each group of words
for words in listwords:
# check to see if each word group is in the current sentence
if all(word in sentence for word in words):
print(sentence)
Я прокомментировал строки, чтобы дать вам представление о том, что происходит
Первая часть код выполняет итерацию по каждому предложению в вашем списке
for sentence in listsent:
Затем нам нужно перебирать группы слов, которые есть в вашем списке слов
for words in listwords
Вот где начинается самое интересное. Поскольку у вас есть вложенные списки, нам необходимо убедиться, что в предложении присутствуют все три слова
if all(word in sentence for word in words):
Наконец, вы можете распечатать каждое предложение, которое содержит все слова
print(sentence)
вы также можете поместить это в функцию и вернуть найденные предложения в виде нового списка
listwords = [['people','suffering','acute'], ['Covid-19','Corona','like'], ['people','must','collectively']]
listsent = ['The number of people suffering acute hunger could almost double.',
'Lockdowns and global economic recession have',
'one more shock – like Covid-19 – to push them over the edge',
'people must collectively act now to mitigate the impact']
def check_words(listwords, listsent):
listsent_new = []
# interate through each sentence
for sentence in listsent:
# iterate through each group of words
for words in listwords:
# check to see if each word group is in the current sentence
if all(word in sentence for word in words):
listsent_new.append(sentence)
return listsent_new
if __name__ == '__main__':
print(check_words(listwords, listsent))