第 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题(统计单词出现次数)相关推荐

  1. python小程序100题-Python 练习册,每天一个小程序 -- 0000题

    python入门后需要不断的练习才能加深印象,为了提升自己的python编码能力,特地找了一些python小例子进行练习,这个是原文地址:https://github.com/Yixiaohan/sh ...

  2. Python 练习册,每天一个小程序

    Python 练习册,每天一个小程序 说明: Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也适用 不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 点此 ...

  3. 小程序工程化实践(上篇)-- 手把手教你撸一个小程序 webpack 插件,一个例子带你熟悉 webpack 工作流程...

    本文基于 webpack 4 和 babel 7,Mac OS,VS Code 小程序开发现状: 小程序开发者工具不好用,官方对 npm 的支持有限,缺少对 webpack, babel 等前端常用工 ...

  4. 做一个小程序的完整流程

    一. 引言 最近在帮朋友开发一个小程序,都说今年是小程序快速发展的一年,不懂技术的人,大部分零售店面都开始想做一个小程序帮助推广销售.虽然小程序技术门槛没那么高,但自己独立做一个小程序还是需要了解的内 ...

  5. 今日推荐一款实用的搜题小程序,题多多搜题

    为什么要用小程序 1.不用安装,即开即用,节省流量,节约安装时间,而且不占用桌面: 2.功能上更为集中.单一,降低用户的使用难度,减少手机的过度使用. 小程序怎么找 现在大厂都已经推出了各自的小程序, ...

  6. 完整答题小程序带流量主激励广告强点源码(答题小程序模板+题库)

    源码简介: ​答题小程序带流量主激励广告强点源码(答题小程序模板+题库),完整答题小程序源码有题库,无加密,带激励广告强制点击可提升广告收益.​ 下载链接 网盘源码   密码:3lev 背景 完整答题 ...

  7. 怎么用linux设计一个小程序,“Linux”小程序发布一个月后,我们发现了什么

    原标题:"Linux"小程序发布一个月后,我们发现了什么 这一个月来,这个小程序得到了八千多人的使用,一百多位贡献者实际参与了翻译贡献,其中贡献最高的"Datura st ...

  8. 制作一个查询信息程序_三步学会制作一个小程序

    小程序在刚出现的时候简直是惊艳了整个业界,不管什么内容,光是那酷炫的交互效果就足以篇篇刷屏了,再加上"用完即走",不用安装.不占用内存.入口众多等特性.不过早期由大厂商的专业程序员 ...

  9. 一个小程序引发的思考

    既然是一个小程序引发的思考,那么我们就先看看这个小程序,看看他有何神奇之处: namespace ConsoleApplication1 {class Program{static void Main ...

最新文章

  1. 工作中系统报错:数据库连接失败怎么办?
  2. set python_python基础:集合-set()
  3. java类方法不可见_使java方法仅对特定类可见
  4. 关键字—final static const的区别
  5. Default process group has not been initialized, please make sure to call init_process_group
  6. =====BJmeter性能测试小接=====
  7. 如何不重启热更新线上 Java 代码?
  8. 【系统分析师之路】2020年下系统分析师案例分析真题
  9. 第一章、Zigbee模块的简介及特点
  10. 中国志愿者服务器注册,如何注册成为志愿者?中国志愿服务网注册流程
  11. flask中for循环
  12. numpy创建单位矩阵和对角矩阵
  13. PostGreSQL安装压缩包格式
  14. java消息队列ActiveMQ之Comsumer
  15. 电脑编程入门需要学什么呢
  16. windows11打开隐藏的gpedit.msc本地组策略编辑器以及禁止自动更新系统
  17. 转载】泡MM与GOF的23种模式(看着挺有意思)
  18. 蓝桥杯 基础练习VIP FJ的字符串 java
  19. ifstream 中 getline读文件三种方式
  20. 2020年六级翻译:三国演义

热门文章

  1. Silverlight+WCF 新手实例 象棋 游戏房间列表(十三)
  2. 笔试常见的“阶乘”编程题,你写对了么?
  3. CVPR2021 用更好的目标检测器提取视觉特征!微软提出VinVL,基于更好的视觉特征,达到更强的多模态性能...
  4. SimVLM:拒绝各种花里胡哨!CMUGoogle提出弱监督极简VLP模型,在多个多模态任务上性能SOTA...
  5. 专研自动驾驶,深动科技春季招聘启动,含社招和实习
  6. 奖池90万!阿里天池发起肺部CT多病种智能诊断大赛
  7. 谷歌发布AdaNet,快速灵活的AutoML工具,帮助开发者构筑强大集成学习模型
  8. 快速排序c语言单链表代码,快速排序算法及源代码(C语言)
  9. java实现翻转二叉树_【leetcode刷题】[简单]226. 翻转二叉树(invert binary tree)-java...
  10. 你知道吗?Python原来可以做这些