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 相关文章推荐
Python2.5/2.6实用教程 入门基础篇
Nov 29 Python
python实现系统状态监测和故障转移实例方法
Nov 18 Python
Python greenlet实现原理和使用示例
Sep 24 Python
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
浅析python中的迭代与迭代对象
Oct 08 Python
在python中实现调用可执行文件.exe的3种方法
Jul 07 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
Python绘图实现显示中文
Dec 04 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
python实现简单的五子棋游戏
Sep 01 Python
Python创建文件夹与文件的快捷方法
Dec 08 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 socket方式提交的post详解
2008/07/19 PHP
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
javascript每日必学之运算符
2016/02/16 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
vuejs如何配置less
2017/04/25 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
2018/07/10 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
详解在Javascript中进行面向切面编程
2019/04/28 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[00:32]10月24、25日 辉夜杯外卡赛附加赛开赛!
2015/10/23 DOTA
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
Python在线和离线安装第三方库的方法
2020/10/31 Python
加热夹克:RAVEAN
2018/10/19 全球购物
厨房领班竞聘演讲稿
2014/04/23 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
单位工资证明范本
2015/06/12 职场文书
nginx优化的六点方法
2021/03/31 Servers
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
从原生JavaScript到React深入理解
2022/07/23 Javascript