Python实现统计单词出现的个数


Posted in Python onMay 28, 2015

最近在看python脚本语言,脚本语言是一种解释性的语言,不需要编译,可以直接用,由解释器来负责解释。python语言很强大,而且写起来很简洁。下面的一个例子就是用python统计单词出现的个数。

import sys
import string
#import collections

if len(sys.argv) == 1 or sys.argv[1] in {"-h", "--help"}:
 print("usage: uniqueword filename_1 filename_2 ... filename_n")
 sys.exit()
else:
 words = {} 
 # words = collections.defaultdict(int)
 strip = string.whitespace + string.punctuation + string.digits + "\"'"
 for filename in sys.argv[1:]:
 for line in open(filename):
  for word in line.split():
  word = word.strip(strip)
  if len(word) >= 2:
   words[word] = words.get(word, 0) + 1
   # words[word] += 1
 for word in sorted(words):
 print("'{0}' occurs {1} times".format(word,words[word]))

假设文件名是 uniqueword.py,在命令行下输入: uniqueword.py filename_1 filename_2 ... filename_n中单词出现的次数可以被统计出来。
 
第四行和第五行判断是否有输入参数,如果输入参数为空或者为-h, -help,则输出帮助信息。

从第七行到第14行是核心部分,逐一打开参数中指定的文件,并读取每一行,再用字符串的split方法把读取的行抽取出一个一个的单词,但单词长度大于2的时候,把此单词加入到字典words中。 其中words.get(word, 0)的意思是取出key等于word的value,如果key为空,则把value置为默认值0. 最后打印出结果。

Python 相关文章推荐
Python图像灰度变换及图像数组操作
Jan 27 Python
Python可变参数用法实例分析
Apr 02 Python
Python实现购物车功能的方法分析
Nov 10 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
python直接获取API传递回来的参数方法
Dec 17 Python
PyQt5实现简单数据标注工具
Mar 18 Python
ipython和python区别详解
Jun 26 Python
详解Python3定时器任务代码
Sep 23 Python
python程序文件扩展名知识点详解
Feb 27 Python
python 瀑布线指标编写实例
Jun 03 Python
详解Python中list[::-1]的几种用法
Nov 16 Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 Python
Python下载懒人图库JavaScript特效
May 28 #Python
Python实现给qq邮箱发送邮件的方法
May 28 #Python
Python import用法以及与from...import的区别
May 28 #Python
Python中使用不同编码读写txt文件详解
May 28 #Python
Python实现统计英文单词个数及字符串分割代码
May 28 #Python
python处理大数字的方法
May 27 #Python
python类继承用法实例分析
May 27 #Python
You might like
建立文件交换功能的脚本(一)
2006/10/09 PHP
中篇:安装及配置PHP
2006/12/13 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
php处理json时中文问题的解决方法
2011/04/12 PHP
无需重新编译php加入ftp扩展的解决方法
2013/02/07 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
简单实现PHP留言板功能
2016/12/21 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Dojo 学习要点
2010/09/03 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
js实现局部页面打印预览原理及示例代码
2014/07/03 Javascript
javascript 10进制和62进制的相互转换
2014/07/31 Javascript
简单理解js的冒泡排序
2016/12/19 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
AngularJS的脏检查深入分析
2017/04/22 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python的多态性实例分析
2015/07/07 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
什么是GWT的Module
2013/01/20 面试题
《两个铁球同时着地》教学反思
2014/02/13 职场文书
家长写给孩子的评语
2014/04/18 职场文书
企业宣传标语
2014/06/09 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
投标承诺函范文
2015/01/21 职场文书
涨价通知
2015/04/23 职场文书
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技