我在python中有一个列表:[adam,josh,drake]
我想输出所有单词中使用单词的时间百分比(例如adam-33%,josh 33%等)。因此,如果我在列表中添加一个单词,百分比将相应地改变。
答案 0 :(得分:4)
您可以使用collections.Counter
来计算每个单词出现的频率。
然后你可以遍历生成的对象,并将每个计数除以原始列表的长度,得到一个从0.0到1.0的小数百分比,可以乘以100,得到0到100之间的百分比打印出来
答案 1 :(得分:1)
您应该查看集合模块,尤其是https://docs.python.org/3/library/collections.html#collections.Counter
from collections import Counter
names = ['adam','josh','drake']
count = Counter(names).items()
percentages = {x: int(float(y) / len(names) * 100) for x, y in count}
for name, pct in percentages.iteritems():
print '%s - %s%s' % (name, pct, '%')
计数器上的项方法会生成名称的元组列表以及名称在原始列表中显示的次数。