Python 计算列表中的频率并以特定格式输出结果
我有一份清单:Python 计算列表中的频率并以特定格式输出结果,python,python-3.x,Python,Python 3.x,我有一份清单: ['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 'blabla', 'blabla', 'zozo', 'zozo', 'momo'] 我想计算每个单词的频率,并输出排序结果,如下所示: 布拉布拉:3 momo:2 fafa:1 我使用了计数器,但输出不符合我的要求 import collections l = ['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'mom
['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 'blabla', 'blabla', 'zozo', 'zozo', 'momo']
我想计算每个单词的频率,并输出排序结果,如下所示:
布拉布拉:3momo: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}]
如何从输出中删除“计数器”字?几乎在那里,您可以使用的方法是:
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个)结果-作为元组(名称、计数)
您也可以使用列表函数
l = ['blabla', 'tata', 'baba.com', 'fafa', 'gmail', 'momo', 'blabla', 'blabla', 'zozo', 'zozo', 'momo']
print({x: l.count(x) for x in l})
输出:
{'blabla':3,'momo':2,'zozo':2,'gmail':1,'baba.com':1,'fafa':1,'tata':1}试试
print(dict(c))
hey jpp.。很接近,但不完全一样。我得到:{'blablabla':3,'momo':2}。它没有排序,我还有括号{}Python字典没有按照定义进行排序,您希望删除计数器,而不是方括号fun可选:print(*(f'{k}:{v}表示k,v在c.most_common()),sep='\n')