首页 > 解决方案 > 计算列表中的频率并以特定格式输出结果

问题描述

我有一个清单:

['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 }]

如何从输出中删除“计数器”字?

标签: pythonpython-3.x

解决方案


几乎在那里,您为此使用Counter的most_common( [N] )方法:

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)


推荐阅读