每天一个小程序—0004题(统计单词出现次数)
第 0004 题: 任一个英文的纯文本文件,统计其中的单词出现的个数。
先给出我一开始写得,只能说非常不优美,一个一个字符搞得。。。
1 f = open('num.txt') 2 word = [] 3 word_num = {} 4 char = f.read(1) 5 while char: 6 if char == ' ' or char == '\n': 7 if word: 8 word = ''.join(word).lower() #转成小写 9 if word in word_num: 10 word_num[word] += 1 11 else: 12 word_num[word] = 1 13 word = [] 14 else: 15 word.append(char) 16 char = f.read(1) 17 if word: 18 word = ''.join(word).lower() 19 if word in word_num: 20 word_num[word] += 1 21 else: 22 word_num[word] = 1 23 word = [] 24 for i,j in word_num.items(): 25 print(i,j)
第二次看了网上的,开始尝试用正则表达式来搞:
1 import re 2 3 f = open('num.txt') 4 word_list = [] 5 reg = '\w+' #/w是匹配字母、数字、下划线 6 7 for line in f: 8 word = re.findall(reg, line) #也可以是word = line.split() 9 word_list.extend(word) 10 11 word_set = set(word_list) 12 word_dict = {word: word_list.count(word) for word in word_set} 13 for i, j in word_dict.items(): 14 print(i, j)
最后就是python自带的collections模块,里面有Counter计数器函数,可以自动统计单词出现次数。
可以先用个例子来了解一下Counter:
1 from collections import Counter 2 3 word_list = ['I', 'am', 'zyb', 'zyb'] 4 ans = Counter(word_list) 5 print(ans)
结果为:
代码很简洁,如下:
1 import re 2 from collections import Counter 3 4 f = open('num.txt') 5 word_list = [] 6 7 for line in f: 8 word = line.split() 9 word_list.extend(word) 10 11 word_dict = dict(Counter(word_list)) 12 for i, j in word_dict.items(): 13 print(i, j)
转载于:https://www.cnblogs.com/zyb993963526/p/8280755.html
每天一个小程序—0004题(统计单词出现次数)相关推荐
- python小程序100题-Python 练习册,每天一个小程序 -- 0000题
python入门后需要不断的练习才能加深印象,为了提升自己的python编码能力,特地找了一些python小例子进行练习,这个是原文地址:https://github.com/Yixiaohan/sh ...
- Python 练习册,每天一个小程序
Python 练习册,每天一个小程序 说明: Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也适用 不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 点此 ...
- 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...
本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工 ...
- 做一个小程序的完整流程
一. 引言 最近在帮朋友开发一个小程序,都说今年是小程序快速发展的一年,不懂技术的人,大部分零售店面都开始想做一个小程序帮助推广销售.虽然小程序技术门槛没那么高,但自己独立做一个小程序还是需要了解的内 ...
- 今日推荐一款实用的搜题小程序,题多多搜题
为什么要用小程序 1.不用安装,即开即用,节省流量,节约安装时间,而且不占用桌面: 2.功能上更为集中.单一,降低用户的使用难度,减少手机的过度使用. 小程序怎么找 现在大厂都已经推出了各自的小程序, ...
- 完整答题小程序带流量主激励广告强点源码(答题小程序模板+题库)
源码简介: 答题小程序带流量主激励广告强点源码(答题小程序模板+题库),完整答题小程序源码有题库,无加密,带激励广告强制点击可提升广告收益. 下载链接 网盘源码 密码:3lev 背景 完整答题 ...
- 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么
原标题:"Linux"小程序发布一个月后,我们发现了什么 这一个月来,这个小程序得到了八千多人的使用,一百多位贡献者实际参与了翻译贡献,其中贡献最高的"Datura st ...
- 制作一个查询信息程序_三步学会制作一个小程序
小程序在刚出现的时候简直是惊艳了整个业界,不管什么内容,光是那酷炫的交互效果就足以篇篇刷屏了,再加上"用完即走",不用安装.不占用内存.入口众多等特性.不过早期由大厂商的专业程序员 ...
- 一个小程序引发的思考
既然是一个小程序引发的思考,那么我们就先看看这个小程序,看看他有何神奇之处: namespace ConsoleApplication1 {class Program{static void Main ...
最新文章
- 工作中系统报错:数据库连接失败怎么办?
- set python_python基础:集合-set()
- java类方法不可见_使java方法仅对特定类可见
- 关键字—final static const的区别
- Default process group has not been initialized, please make sure to call init_process_group
- =====BJmeter性能测试小接=====
- 如何不重启热更新线上 Java 代码?
- 【系统分析师之路】2020年下系统分析师案例分析真题
- 第一章、Zigbee模块的简介及特点
- 中国志愿者服务器注册,如何注册成为志愿者?中国志愿服务网注册流程
- flask中for循环
- numpy创建单位矩阵和对角矩阵
- PostGreSQL安装压缩包格式
- java消息队列ActiveMQ之Comsumer
- 电脑编程入门需要学什么呢
- windows11打开隐藏的gpedit.msc本地组策略编辑器以及禁止自动更新系统
- 转载】泡MM与GOF的23种模式(看着挺有意思)
- 蓝桥杯 基础练习VIP FJ的字符串 java
- ifstream 中 getline读文件三种方式
- 2020年六级翻译:三国演义
热门文章
- Silverlight+WCF 新手实例 象棋 游戏房间列表(十三)
- 笔试常见的“阶乘”编程题,你写对了么?
- CVPR2021 用更好的目标检测器提取视觉特征!微软提出VinVL,基于更好的视觉特征,达到更强的多模态性能...
- SimVLM:拒绝各种花里胡哨!CMUGoogle提出弱监督极简VLP模型,在多个多模态任务上性能SOTA...
- 专研自动驾驶,深动科技春季招聘启动,含社招和实习
- 奖池90万!阿里天池发起肺部CT多病种智能诊断大赛
- 谷歌发布AdaNet,快速灵活的AutoML工具,帮助开发者构筑强大集成学习模型
- 快速排序c语言单链表代码,快速排序算法及源代码(C语言)
- java实现翻转二叉树_【leetcode刷题】[简单]226. 翻转二叉树(invert binary tree)-java...
- 你知道吗?Python原来可以做这些