在列表中计算频率并以特定形式输出结果

2024-05-16 21:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个清单:

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

我想计算每个单词的频率并输出排序结果如下:

布拉布拉:3
momo:2
脂肪酸:1

我用过计数器,但输出不是我想要的

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

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

输出:

Counter({'blabla.com': 3, 'momo': 2 }]

如何从输出中删除“Counter”字?你知道吗


Tags: com排序counter计数器单词collectionsgmailmomo
2条回答

也可以使用列表功能

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}

差不多了,您可以使用Countermost_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)

相关问题 更多 >