Python3实现统计单词表中每个字母出现频率的方法示例


Posted in Python onJanuary 28, 2019

本文实例讲述了Python3实现统计单词表中每个字母出现频率的方法。分享给大家供大家参考,具体如下:

作为python字典与数组概念的运用,统计字母表中每个字母出现的频率,作为练习再合适不过。

解决问题过程中需要用到的知识点包括:字典的创建、增添元素,数组的创建、增添元素,数组的遍历等

这个问题解决的思路为:首先从文件中按行依次读入单词,去除换行符后添加到数组 new_list 中。依次遍历数组 new_list 的每一个字符串,将每个字符串连同上一次循环中的频率统计结果 old_d (old_d在遍历new_list之前进行初始化)一起作为实参传递给频率统计函数 histogram()。histogram()函数在上一轮频率统计基础上得出本轮频率统计结果,结果通过字典 d 传回,将值赋给 old_d 。直到遍历完new_list,再将 old_d 统计结果打印。

'''transform string into dictionary
s is input string
d is dictionary to restore every bit in string
'''
def histogram(s, old_d):
  d = old_d
  for c in s:
    d[c] = d.get(c, 0) + 1
  return d
'''This function can calculate the frequency of every letter in alphabet
'''
fin = open("words.txt")
new_list = []
for line in fin:
  rs = line.rstrip('\n') #delete the '\n' after every letter
  new_list.append(rs) # new_list is used to restore letters
old_d = dict() # initialize the dictionary
for i in range(len(new_list)): #calculate the letter
#frequency of every word
  old_d = histogram(new_list[i], old_d) #old_d is used to
  #restore letter frequency before new_list[i]
print(old_d)

这里words.txt文档内容如下:

But soft what light through yonder window breaks
It is the east and Juliet is the sun
Arise fair sun and kill the envious moon
Who is already sick and pale with grief

代码运行结果:

{'B': 1, 'u': 6, 't': 12, ' ': 29, 's': 11, 'o': 8, 'f': 3, 'w': 4, 'h': 9, 'a': 10, 'l': 6, 'i': 13, 'g': 3, 'r': 7, 'y': 2, 'n': 9, 'd': 6, 'e': 12, 'b': 1, 'k': 3, 'I': 1, 'J': 1, 'A': 1, 'v': 1, 'm': 1, 'W': 1, 'c': 1, 'p': 1}

Python 相关文章推荐
跟老齐学Python之变量和参数
Oct 10 Python
python追加元素到列表的方法
Jul 28 Python
Python中functools模块函数解析
Mar 12 Python
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
简单了解python模块概念
Jan 11 Python
python psutil库安装教程
Mar 19 Python
tensorflow实现简单逻辑回归
Sep 07 Python
python实现关闭第三方窗口的方法
Jun 28 Python
Python select及selectors模块概念用法详解
Jun 22 Python
Python一行代码实现自动发邮件功能
May 30 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 Python
Python判断变量名是否合法的方法示例
Jan 28 #Python
Python使用while循环花式打印乘法表
Jan 28 #Python
Python实现程序判断季节的代码示例
Jan 28 #Python
Python后台管理员管理前台会员信息的讲解
Jan 28 #Python
Python之列表实现栈的工作功能
Jan 28 #Python
Python中常用的内置方法
Jan 28 #Python
Python中的元组介绍
Jan 28 #Python
You might like
CI(CodeIgniter)框架介绍
2014/06/09 PHP
php自定文件保存session的方法
2014/12/10 PHP
php计算两个文件相对路径的方法
2015/03/14 PHP
关于PHP开发的9条建议
2015/07/27 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
如何使用Jquery获取Form表单中被选中的radio值
2013/08/09 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
jQuery实现在新增加的元素上添加事件方法案例分析
2017/02/09 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python判断操作系统类型代码分享
2014/11/22 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python设计模式之原型模式实例详解
2019/01/18 Python
python环境下安装opencv库的方法
2020/03/05 Python
HTML5 语音搜索(淘宝店语音搜素)
2013/01/03 HTML / CSS
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
英语系本科生求职信范文
2013/12/18 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
违反学校规定检讨书
2014/01/18 职场文书
小学数学国培感言
2014/03/10 职场文书
会计专业个人自我鉴定
2014/03/21 职场文书
优秀党支部申报材料
2014/12/24 职场文书
开票证明
2015/06/23 职场文书
小学运动会开幕词
2016/03/04 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL