【发布时间】:2018-10-18 10:13:24
【问题描述】:
我有一个文本,我计算了单词的数量和单词的频率。现在我必须按百分比显示前 7 个。我不知道该怎么做。我知道如何计算百分比、部分/整体,但不知道如何编写代码。我已经完成了下面的排序值。
def word_frequency():
"""
Function for word frequency
"""
d = dict()
with open(TEXT, "r") as f:
for line in f:
words = line.split()
for w in words:
if w in d:
d[w] += 1
else:
d[w] = 1
dict_list = sorted(d.items(), key = itemgetter(1), reverse = True)
print(dict_list[0:7])
这给了我这个列表:
[('the', 12), ('to', 8), ('of', 6), ('and', 5), ('a', 4), ('in', 4), ('Phil', 3)]
但是如何用百分比而不是值来计算和呈现它们呢?
文字字数为199。
问候
编辑:新修订的代码
def word_frequency():
"""
Function for word frequency
"""
d = dict()
with open(TEXT, "r") as f:
for line in f:
words = line.split()
for w in words:
if w in d:
d[w] += round(1/1.99, 1)
else:
d[w] = round(1/1.99, 1)
dict_list = sorted(d.items(), key = itemgetter(1), reverse = True)
print(dict_list[0:7])
给我这份清单:
[('the', 6.0), ('to', 4.0), ('of', 3.0), ('and', 2.5), ('a', 2.0), ('in', 2.0), ('Phil', 1.5)]
我现在有百分比,但有没有办法以更好的方式呈现它? 喜欢:
the 6%
to 4%
of 3%
and 2.5%
a 2%
in 2%
Phil 1.5%
【问题讨论】:
标签: python-3.x file percentage