Использование счетчика для создания указания определенных слов в списке - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть список, который выглядит следующим образом:

my_list = ['singapore','india','united states','london','paris','india','london','china','singapore','singapore','new york']

Теперь я хочу Counter[dict] только определенных слов в этом списке

Counter(my_list) gives me the following :
Counter({'singapore': 3, 'india': 2, 'london': 2, 'united states': 1, 'paris': 1, 'china': 1, 'new york': 1})

Но есть ли способ создатьСчетчик только определенных слов из списка, как, например, Счетчик слов в ['london','india','singapore']

Какой самый быстрый способ сделать это?Мой список очень большой.

То, что я пробовал: my_list.count('london') например.Но есть ли более быстрый способ добиться этого?

1 Ответ

8 голосов
/ 26 сентября 2019

Вы можете использовать набор для фильтрации слов, например:

from collections import Counter

needles = {'london', 'india', 'singapore'}
haystack = ['singapore', 'india', 'united states', 'london', 'paris', 'india',
            'london', 'china', 'singapore', 'singapore', 'new york']

result = Counter(value for value in haystack if value in needles)
print(result)

Вывод

Counter({'singapore': 3, 'india': 2, 'london': 2})
...