python统计前十出现最多的词
2017-09-29 14:27
169 查看
一、描述
这是一道python面试题:
“一个可读文件,有一万行,一行只有一个单词,单词可以重复的,求出这一万行中出现频繁次数最多的前10个单词”
二、思路
先读取文件变为列表,再用集合去重得到一个参照的列表,逆排序取前10(最大即最多的的10个元素),再用参照列表中的每个元素从文件中去统计,把参照列表中的元素作为键,统计到的结果为值,放入字典,打印出来。
三、代码
#python tens.py
如图:
练习的文件类似 如下10001行,以文件的方式读取还是很快的:
参考其他人代码二:
总结:
自己写的有点lower完全是练习,方法二高大上!还有更好的方法吗?
这是一道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行,以文件的方式读取还是很快的:
参考其他人代码二:
#!/usr/bin/python #coding:utf-8 result= {} with open("words.txt",'r') as fopen: fopen.seek(0,2) all = fopen.tell() fopen.seek(0,0) while fopen.tell() < all: lines = fopen.readline().strip() if lines in result: result[lines] += 1 else: result[lines] = 1 print(sorted(result.items(),key=lambda k:k[1],reverse=True)[:11])执行结果如图:
总结:
自己写的有点lower完全是练习,方法二高大上!还有更好的方法吗?
相关文章推荐
- 用python统计文本里的单词出现次数最多的10个
- 统计文章出现最多的10个词语--python实现
- Python 练习册 6-统计文本文件中的出现最多的单词
- python 统计文本文件中单词出现的个数
- 判断一个字符串中出现次数最多的字符,统计这个次数
- 统计一个字符串中出现次数最多的字符
- 利用shell脚本统计文件中出现次数最多的IP
- python统计序列中元素出现的频率
- 微软笔试题 统计英文电子书中出现次数最多的k个单词
- Python统计列表中元素出现的次数
- Python实用黑科技——找出序列里面出现次数最多的元素
- 输入一串字母,统计每个字母的出现的个数并将出现次数最多的字母输出
- Python统计一个英文文档中各单词出现的行数
- Python统计单词出现的次数
- python 统计list中各个元素出现的次数
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
- 华为机试 - 统计出现最多次数的数字
- 第一个完整的python程序---统计python3的所有包中,以哪个字母开头的最多?
- 输出列表中出现次数最多的元素 分类: python 2013-01-15 15:25 990人阅读 评论(0) 收藏
- NIO MappedByteBuffer读大文件并统计出现次数最多的TOP K个单词