做单词词频统计,用字典无疑是最合适的数据类型,单词作为字典的key, 单词出现的次数作为字典的 value,很方便地就记录好了每个单词的频率,字典很像我们的电话本,每个名字关联一个电话号码。
下面是具体的实现代码,实现了从importthis.txt文件读取单词,并统计出现次数最多的5个单词。
# -*- coding:utf-8 -*- import io import re class Counter: def __init__(self, path): :param path: 文件路径 self.mapping = dict() with io.open(path, encoding=utf-8) as f: data = f.read() words = [s.lower() for s in re.findall(\w+, data)] for word in words: self.mapping[word] = self.mapping.get(word, 0) + 1 def most_common(self, n): assert n > 0, n should be large than 0 return sorted(self.mapping.items(), key=lambda item: item[1], reverse=True)[:n] if __name__ == '__main__': most_common_5 = Counter(importthis.txt).most_common(5) for item in most_common_5: print(item)
执行效果:
('is', 10) ('better', 8) ('than', 8) ('the', 6) ('to', 5)
更多python教程,推荐学习:Python视频教程
原文地址:https://www.jb51.cc/python/1195222.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。