python统计前十出现最多的词

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python统计前十出现最多的词相关的知识,希望对你有一定的参考价值。

一、描述

     这是一道python面试题:

     “一个可读文件,有一万行,一行只有一个单词,单词可以重复的,求出这一万行中出现频繁次数最多的前10个单词


二、思路

       先读取文件变为列表,再用集合去重得到一个参照的列表,逆排序取前10(最大即最多的的10个元素),再用参照列表中的每个元素从文件中去统计,把参照列表中的元素作为键,统计到的结果为值,放入字典,打印出来。


三、代码

#!/usr/bin/python
#coding:utf-8
all_C = []
with open("words.txt",‘r‘) as f:
    for line in f.readlines():
        all_C.append(line)
#获取无重复元素
all_set=set(sorted(all_C))
#统计为字典
counts={}
for key in all_set:
     counts[key] = all_C.count(key)
#获取前10个元素的个数变为列表
tens = sorted(counts.values(),reverse=True)[0:11]
print tens
#统计最终前十的元素及出现次数
tendict = {}
for k in counts.keys():
    if counts[k] in tens:
        tendict.setdefault(counts[k],k.strip("\n"))
print("出现最多的10个词为:%s \n") %tendict


#python tens.py

如图:

技术分享

练习的文件类似 如下10001行,以文件的方式读取还是很快的:

技术分享

总结:

        感觉几万行这样的代码处理是没有问题的,再大点估计有点吃不消了,没有试过,总觉得有点lower,看官有更好的方法,请留言交流。

本文出自 “学无止境,学以致用” 博客,请务必保留此出处http://dyc2005.blog.51cto.com/270872/1969699

以上是关于python统计前十出现最多的词的主要内容,如果未能解决你的问题,请参考以下文章

python如何从字符串中筛选出包含词最多的那个字符串呢!

003-文本分析

python 怎么提取列表中出现次数最多的值

有一万条字符串,要找出前10条出现次数最多的,该如何解决

上千万或上亿数据(有反复),统计当中出现次数最多的N个数据. C++实现

Python练习题3.6求整数序列中出现次数最多的数-修正版