Вычислять частоту в списке и выводить результат в определенном формате

У меня есть список:

['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 'blabla', 'blabla', 'zozo', 'zozo', 'momo']

Я хотел бы рассчитать частоту каждого слова и вывести отсортированный результат следующим образом:

blabla: 3
momo: 2
fafa: 1

Я использовал счетчик, но результат не такой, как я хочу

import collections
l = ['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 'blabla', 'blabla', 'zozo', 'zozo', 'momo']

c = counter=collections.Counter(l)
print(c)

Вывод :

Счетчик ({'blabla.com': 3, 'momo': 2}]

Как удалить слово «Counter» из вывода?

python,python-3.x,

1

Ответов: 2


3 принят

Практически там вы используете метод most_common ( [N] ) для Counter :

from collections import Counter
l = ['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 
     'blabla', 'blabla', 'zozo', 'zozo', 'momo']

c = Counter(l)
for item,count in c.most_common(): # tuples
    print (f"{item}: {count}") # "{}: {}".format(item,count) for lower 3.6

Вывод:

blabla: 3
momo: 2
zozo: 2
tata: 1
baba.com: 1
fafa: 1
gmail: 1

most_common() возвращает вам всех (или верхних N) результатов в счетчик - как tuple(name, count)


0

Вы также можете использовать функцию списка

l = ['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 'blabla', 'blabla', 'zozo', 'zozo', 'momo']

print({x: l.count(x) for x in l})

output: {'blabla': 3, 'momo': 2, 'zozo': 2, 'gmail': 1, 'baba.com': 1, 'fafa': 1, 'tata': 1}

питон, питон-3.x,
Похожие вопросы
Яндекс.Метрика