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详解
Nov 09 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
Pandas中把dataframe转成array的方法
Apr 13 Python
python版opencv摄像头人脸实时检测方法
Aug 03 Python
Python logging模块用法示例
Aug 28 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
python爬取酷狗音乐排行榜
Feb 20 Python
详解程序意外中断自动重启shell脚本(以Python为例)
Jul 26 Python
Python循环实现n的全排列功能
Sep 16 Python
使用turtle绘制五角星、分形树
Oct 06 Python
简单了解python数组的基本操作
Nov 26 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 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中引用符号(&)的使用详解
2013/11/13 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
解析Javascript小括号“()”的多义性
2013/12/03 Javascript
jqplot通过ajax动态画折线图的方法及思路
2013/12/08 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
javascript 兼容各个浏览器的事件
2015/02/04 Javascript
jQuery Ajax中的事件详细介绍
2015/04/16 Javascript
js如何打印object对象
2015/10/16 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
canvas实现弧形可拖动进度条效果
2017/05/11 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
python实现redis三种cas事务操作
2017/12/19 Python
python实现聚类算法原理
2018/02/12 Python
Python绘制3D图形
2018/05/03 Python
python实现两张图片的像素融合
2019/02/23 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
python为什么会环境变量设置不成功
2020/06/23 Python
如何用Python绘制3D柱形图
2020/09/16 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
CSS3中动画属性transform、transition和animation属性的区别
2016/09/25 HTML / CSS
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
德国游戏机商店:Konsolenkost
2019/12/08 全球购物
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
小区文明倡议书
2014/05/16 职场文书
食品工程专业求职信
2014/06/15 职场文书
股指期货心得体会
2014/09/13 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
2015年乡镇流动人口工作总结
2015/05/12 职场文书
感谢师恩主题班会
2015/08/17 职场文书