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文件操作,open读写文件,追加文本内容实例
Dec 14 Python
基于Python代码编辑器的选用(详解)
Sep 13 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
Python3实现的简单工资管理系统示例
Mar 12 Python
Python制作词云图代码实例
Sep 09 Python
python模式 工厂模式原理及实例详解
Feb 11 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
python爬虫如何解决图片验证码
Feb 14 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/12/25 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
php curl常用的5个经典例子
2017/01/20 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
利用jQuery的$.event.fix函数统一浏览器event事件处理
2009/12/21 Javascript
动感效果的TAB选项卡jquery 插件
2011/07/09 Javascript
js网页实时倒计时精确到秒级
2014/02/10 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
Vue.js动态添加、删除选题的实例代码
2016/09/30 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
原生JS实现图片轮播切换效果
2016/12/15 Javascript
vue基于Element构建自定义树的示例代码
2017/09/19 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Java分治归并排序算法实例详解
2017/12/12 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
python 爬虫百度地图的信息界面的实现方法
2019/10/27 Python
Python 实现打印单词的菱形字符图案
2020/04/12 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
小学教师师德反思
2014/02/03 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
信息员培训方案
2014/06/12 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS