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实现简单的遗传算法
Jan 02 Python
Python处理文本换行符实例代码
Feb 03 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
利用Python实现在同一网络中的本地文件共享方法
Jun 04 Python
Python3多进程 multiprocessing 模块实例详解
Jun 11 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
Python字符串逆序的实现方法【一题多解】
Feb 18 Python
python格式化输出保留2位小数的实现方法
Jul 02 Python
pytorch 自定义数据集加载方法
Aug 18 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
Sep 23 Python
解决Pycharm 运行后没有输出的问题
Feb 05 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
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
php输出图像的方法实例分析
2017/02/16 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
YUI 读码日记之 YAHOO.lang.is*
2008/03/22 Javascript
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
Notify - 基于jquery的消息通知插件
2011/10/18 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
js转html实体的方法
2016/09/27 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
js验证手机号、密码、短信验证码代码工具类
2020/06/24 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
JS实现滑动插件
2020/01/15 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
Python编程argparse入门浅析
2018/02/07 Python
浅析python的Lambda表达式
2019/02/27 Python
Python目录和文件处理总结详解
2019/09/02 Python
python将图片转base64,实现前端显示
2020/01/09 Python
Python netmiko模块的使用
2020/02/14 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
韩国流行时尚女装网站:Dintchina(中文)
2018/07/19 全球购物
支部组织生活会方案
2014/06/10 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
法律服务所工作总结
2015/08/10 职场文书
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers
python运行脚本文件的三种方法实例
2022/06/25 Python