python - 计算列表中的频率并以特定格式输出结果
问题描述
我有一个清单:
['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的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)
推荐阅读
- c++ - GLSL C++ glVertexAttribPointer & glDrawElements 返回 GL_INVALID_OPERATION
- c++ - 在 Linux 上使用 Visual Studio Code 进行调试时无法打开 /dev/ttyUSB0
- java - 格式化 JLabel/JTextField 文本?
- python - 如何在 Python 中将 csv 文件(16 位(高)颜色)转换为图像?
- python-3.x - 如何检查 cuda 是否在 Anaconda 上正确安装
- node.js - http.get 的 Node.js 选项
- c - UDP - sendto() 中的错误:协议不支持地址系列
- c# - 类不包含函数的定义
- node.js - 使用来自其他文件 NodeJS 的方法
- javascript - 将数组列表转换为对象数组