python - 如何打印出某个单词的排名数?

标签 python

我有用于对从 url 导入的 txt 文件中的单词数进行排名的代码。

from string import punctuation
from operator import itemgetter

N = 20
words = {}

words_gen = (word.strip(punctuation).lower() for line in open("output.txt")
                                     for word in line.split())

for word in words_gen:
    words[word] = words.get(word, 0) + 1

top_words = sorted(words.items(), key=itemgetter(1), reverse=True)[:N]


for word, frequency in top_words:
  print("%s %d" % (word, frequency))

因此,从文本文件中,它将返回:

hello 8
him 5
your 4

代码做了排名,但是有没有办法打印出排名数字?

我希望它看起来像这样。

hello 1 8
him 2 5
your 3 4

第一个数字是总体排名,第二个数字是该文本文件中单词的频率。我尝试做类似计算排名之类的事情。

rank=0
if top_words:
  rank+=1

但我不知道该去哪里。

最佳答案

您可以使用enumerate :

for i, (word, frequency) in enumerate(top_words, start=1):
    print("%s %d %d" % (word, i, frequency))

关于python - 如何打印出某个单词的排名数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20588673/

相关文章:

python - 加载图形然后用它来构建 tflite?

python - 长格式的 Pandas 数据框缺少月份

python - EveryBlock.com 源代码有哪些有趣的功能?

python - 阿杜诺和 python

python - 将包含整数的列表转换为字符串

python - 在 Python 中将字母转换为数字

python - 绘制多条 3D 线 : data transformation

Python 函数调用是出血范围、有状态、无法初始化参数?

python - 无法注释掉涉及多行字符串的代码

python - 如何获取不同操作系统中的字体目录路径?