计算列表中单词的频率并按频率排序

新手上路,请多包涵

我正在使用 Python 3.3

我需要创建两个列表,一个用于唯一单词,另一个用于单词的频率。

我必须根据频率列表对唯一单词列表进行排序,以便频率最高的单词在列表中排在第一位。

我有文本设计,但不确定如何在 Python 中实现它。

到目前为止我发现的方法使用 Counter 或我们还没有学过的字典。我已经从包含所有单词的文件中创建了列表,但不知道如何找到列表中每个单词的频率。我知道我需要一个循环来执行此操作,但无法弄清楚。

这是基本设计:

  original list = ["the", "car",....]
 newlst = []
 frequency = []
 for word in the original list
       if word not in newlst:
           newlst.append(word)
           set frequency = 1
       else
           increase the frequency
 sort newlst based on frequency list

原文由 user3088605 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 641
1 个回答

用这个

from collections import Counter
list1=['apple','egg','apple','banana','egg','apple']
counts = Counter(list1)
print(counts)
# Counter({'apple': 3, 'egg': 2, 'banana': 1})

原文由 Ashif Abdulrahman 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题