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操作xml文件示例
Apr 07 Python
wxPython中文教程入门实例
Jun 09 Python
Python操作MySQL简单实现方法
Jan 26 Python
python回溯法实现数组全排列输出实例分析
Mar 17 Python
Python读写文件方法总结
Jun 09 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
Python3 log10()函数简单用法
Feb 19 Python
python实现Virginia无密钥解密
Mar 20 Python
Django ORM 查询管理器源码解析
Aug 05 Python
python中的TCP(传输控制协议)用法实例分析
Nov 15 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
python中线程和进程有何区别
Jun 17 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
DIY实用性框形天线
2021/03/02 无线电
php中的ini配置原理详解
2014/10/14 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
JavaScript中5种调用函数的方法
2015/03/12 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
使用Promise解决多层异步调用的简单学习心得
2016/05/17 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
react-native ListView下拉刷新上拉加载实现代码
2017/08/03 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
Python三元运算实现方法
2015/01/12 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
Django数据统计功能count()的使用
2020/11/30 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
英国在线药房:Chemist.co.uk
2019/03/26 全球购物
Java程序员面试题
2013/07/15 面试题
工作自我评价范文
2015/03/05 职场文书
2015年高校辅导员工作总结
2015/04/20 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android