Python: как проверить, содержит ли строка элемент из списка, и вывести этот элемент? - PullRequest
0 голосов
/ 11 октября 2018

У меня есть список предложений (exg) и список названий фруктов (fruit_list).У меня есть код, чтобы проверить, содержат ли предложения элементы из fruit_list, как показано ниже:

exg = ["I love apple.", "there are lots of health benefits of apple.", 
       "apple is especially hight in Vitamin C,", "alos provide Vitamin A as a powerful antioxidant!"]


fruit_list = ["pear", "banana", "mongo", "blueberry", "kiwi", "apple", "orange"]

for j in range(0, len(exg)):
    sentence = exg[j]
    if any(word in sentence for word in fruit_list):
        print(sentence)

Вывод ниже: только предложения содержат слова с «яблоком»

I love apple.
there are lots of health benefits of apple.
apple is especially hight in Vitamin C,

Но яЯ хотел бы распечатать, какое слово было элементом fruit_list и было найдено в предложениях.В этом примере я хотел бы иметь вывод слова «яблоко», вместо предложений содержит слово яблоко.

Надеюсь, это имеет смысл.Пожалуйста, пришлите помощь и большое спасибо!

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Вместо any с выражением генератора, вы можете использовать предложение for с break:

for j in range(0, len(exg)):
    sentence = exg[j]
    for word in fruit_list:
        if word in sentence:
            print(f'{word}: {sentence}')
            break

Результат:

apple: I love apple.
apple: there are lots of health benefits of apple.
apple: apple is especially hight in Vitamin C,

Более идиоматическим являетсяитерируйте список, а не диапазон для индексации:

for sentence in exg:
    for word in fruit_list:
        if word in sentence:
            print(f'{word}: {sentence}')
            break
0 голосов
/ 11 октября 2018

Попробуйте использовать in для проверки word in fruit_list, затем вы можете использовать fruit в качестве переменной позже.

Для того, чтобы определить, какое слово было найдено, вам нужно будет использовать другой методчем any().any() только это заботится, только если он может найти word в fruit_list.ему все равно, какой word или где в списке он был найден.

exg = ["I love apple.", "there are lots of health benefits of apple.", 
   "apple is especially hight in Vitamin C,", "alos provide Vitamin A as a powerful antioxidant!"]


fruit_list = ["pear", "banana", "mongo", "blueberry", "kiwi", "apple", "orange"]

# You can remove the 0 from range, because it starts at 0 by default
# You can also loop through sentence directly
for sentence in exg:
    for word in fruit_list:
        if(word in sentence):
            print("Found word:", word, "  in:", sentence)

Результат:

Found word: apple  in: I love apple.
Found word: apple  in: there are lots of health benefits of apple.
Found word: apple  in: apple is especially hight in Vitamin C,
0 голосов
/ 11 октября 2018

Это сделает работу.

for j in range(0, len(fruit_list)):
fruit = fruit_list[j]
if any(fruit in sentence for sentence in exg):
    print(fruit)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...