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 将字符串转换成字典dict
Mar 24 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
pytorch打印网络结构的实例
Aug 19 Python
Python+OpenCv制作证件图片生成器的操作方法
Aug 21 Python
TensorFlow自定义损失函数来预测商品销售量
Feb 05 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 Python
在keras中对单一输入图像进行预测并返回预测结果操作
Jul 09 Python
Python数据分析入门之教你怎么搭建环境
May 13 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
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
JavaScript面向对象程序设计三 原型模式(上)
2011/12/21 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
node.js中的fs.statSync方法使用说明
2014/12/16 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
JS解决iframe之间通信和自适应高度的问题
2016/08/24 Javascript
JS 终止执行的实现方法
2016/11/24 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
封装 axios+promise通用请求函数操作
2020/08/11 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
在Python中操作列表之List.pop()方法的使用
2015/05/21 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
python中nan与inf转为特定数字方法示例
2017/05/11 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
Python3远程监控程序的实现方法
2019/07/15 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
详解Python中import机制
2020/09/11 Python
Python timeit模块原理及使用方法
2020/10/10 Python
python 如何使用find和find_all爬虫、找文本的实现
2020/10/16 Python
html5摇一摇代码优化包括DeviceMotionEvent等等
2014/09/01 HTML / CSS
工作中个人的自我评价
2013/12/31 职场文书
小学教师评语大全
2014/04/23 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
Python实现byte转integer
2021/06/03 Python
python 爬取天气网卫星图片
2021/06/07 Python