【问题标题】:python list - find percentage of the times that a word appears [duplicate]python list - 查找单词出现次数的百分比[重复]
【发布时间】:2017-03-14 06:18:27
【问题描述】:

我在 python 中有一个列表:[adam,josh,drake] 我想输出一个单词在所有单词中的使用次数百分比(例如 adam-33%、josh 33% 等)。因此,如果我在列表中添加一个单词,百分比将相应更改。

【问题讨论】:

  • 编辑问题并发布您的代码,我的建议是在列表中运行一两个循环并获取每个名称的频率,然后将其除以列表中每个名称的总数名称

标签: python list


【解决方案1】:

您可以使用collections.Counter 计算每个单词出现的频率。

然后您可以遍历生成的对象,并将每个计数除以原始列表的长度,得到从 0.0 到 1.0 的小数百分比,可以将其乘以 100,得到 0 到 100 之间的百分比以打印出来.

【讨论】:

    【解决方案2】:

    您应该查看集合模块,尤其是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, '%')
    

    Counter 上的 items 方法生成名称的元组列表以及该名称在原始列表中出现的次数。

    【讨论】:

    • 以后如何打印出来?
    • for name, pct in percents.iteritems(): print '%s: %s' % (name, pct)
    • 这将是一个名称和每行计数,但是有很多方法可以将其打印出来。你想得到什么样的输出?
    • 亚当 - 33% 乔什 - 33%
    • 我假设这意味着每行一个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 2012-02-03
    • 2012-05-13
    相关资源
    最近更新 更多