Перебирать список и возвращать none, если не найден в другом списке

#python #list

#python #Список

Вопрос:

Я пытаюсь выполнить итерацию по моему списку «sents». Если мой другой список «еда» содержит элемент в списке «sents», я хочу добавить значение из списка «еда» в «результат», а если нет, добавить none.

Что у меня есть до сих пор:

result = []

sents = ['I love pizza. its my favorite', 'lets go get a sub', 'I just want a big fat steak']

food = ['sub', 'pizza', 'burger', 'noodles', 'candy']

Я знаю, что это должно быть просто, но я не могу понять, как это сделать. Я попытался сделать следующее:

 for x in sents:
    for z in food:
        if z in x:
            result.append(z)
        else:
            result.append("None")
  

Но это, очевидно, добавляет элемент для каждого элемента списка в food.

Я пытаюсь получить свой список «результат», который будет выглядеть так:

result = ['pizza', 'sub', 'none']

Любая помощь будет с благодарностью принята.

Комментарии:

1. Вы должны попытаться написать код, чтобы иметь конкретную проблему с кодированием, как того требует этот сайт.

Ответ №1:

Сначала вам нужно будет проанализировать ваш sents list и найти ключевые слова ( food ). После нахождения этих ключевых слов вы можете добавить их в список результатов. Это моя точка зрения, исходя из другого языка программирования. Вам придется реализовать эту теорию на Python. (Я бы прокомментировал, но недостаточно очков репутации)

Комментарии:

1. Спасибо за ввод, Ренан!

Ответ №2:

Вы можете попробовать с этим..

 result = []

sents = ['I love pizza. its my favorite', 'lets go get a sub', 'I just want a big fat steak']

food = ['sub', 'pizza', 'burger', 'noodles', 'candy']

for lines in sents:
     flg = 0
     for items in food:
         if items in lines:
              result.append(items)
              flg=1
     if flg==0:
         result.append('None')

print(result)
# result = ['pizza', 'sub', 'none']
  

Ответ №3:

 Result = list([x if sents.find(x) else 'none' for x in food])
  

#обновлено для string.find()
#кроме того, не учитывает различия в регистре

Комментарии:

1. Привет, похоже, это тоже не работает. Это приводит к: result = [‘none’, ‘none’, ‘none’, ‘none’, ‘none’]