Частота счета предметов в Python - PullRequest
53 голосов
/ 21 мая 2009

Предположим, у меня есть список слов, и я хочу узнать, сколько раз каждое слово появляется в этом списке.

Очевидный способ сделать это:

words = "apple banana apple strawberry banana lemon"
uniques = set(words.split())
freqs = [(item, words.split().count(item)) for item in uniques]
print(freqs)

Но я нахожу этот код не очень хорошим, потому что программа запускает список слов дважды, один раз для построения набора и второй для подсчета количества появлений.

Конечно, я мог бы написать функцию для запуска по списку и подсчета, но это не было бы так Pythonic. Итак, есть ли более эффективный и питонский способ?

Ответы [ 11 ]

0 голосов
/ 07 апреля 2011

Разве вы не можете просто использовать количество?

words = 'the quick brown fox jumps over the lazy gray dog'
words.count('z')
#output: 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...