Вы можете разделить предложение и передать его на Collections.counter()
. С его помощью вы можете посмотреть количество слов в своем списке слов. Например:
from collections import Counter
string = "Cup Noodles Chicken Vegetable Noodles"
listWords = ['Noodles', 'Instant', 'Flavour', 'Ramen', 'Chicken', 'Flavor', 'Spicy', 'Beef']
counts = Counter(string.split())
[counts[word] for word in listWords]
# [2, 0, 0, 0, 1, 0, 0, 0]
Без счетчика ()
Конечно, вы можете сделать это без Counter()
. Вам просто нужно обработать KeyError
, которое возникает, когда вы пытаетесь получить доступ к ключу в первый раз. Затем вы можете использовать get(word, 0)
, чтобы вернуть значение по умолчанию 0 при поиске слов. Что-то вроде:
string = "Cup Noodles Chicken Vegetable Noodles"
listWords = ['Noodles', 'Instant', 'Flavour', 'Ramen', 'Chicken', 'Flavor', 'Spicy', 'Beef']
counts = {}
for word in string.split():
try:
counts[word] += 1
except KeyError:
counts[word] = 1
[counts.get(word, 0) for word in listWords]
# still [2, 0, 0, 0, 1, 0, 0, 0]