Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算列表中的频率并以特定格式输出结果_Python_Python 3.x - Fatal编程技术网

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']
我想计算每个单词的频率,并输出排序结果,如下所示:

布拉布拉: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}]

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

几乎在那里,您可以使用的方法是:

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')