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编写类UNIX系统的命令行工具的教程
Apr 15 Python
python executemany的使用及注意事项
Mar 13 Python
python逆向入门教程
Jan 15 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
django 单表操作实例详解
Jul 30 Python
Python解析多帧dicom数据详解
Jan 13 Python
python入门之基础语法学习笔记
Feb 08 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
Django debug为True时,css加载失败的解决方案
Apr 24 Python
Django数据库(SQlite)基本入门使用教程
Jul 07 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实现维护文件代码
2007/06/14 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
header导出Excel应用示例
2014/01/24 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
js实现简单的购物车有图有代码
2014/05/26 Javascript
浅析Node.js中的内存泄漏问题
2015/06/23 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
JS模拟简易滚动条效果代码(附demo源码)
2016/04/05 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
React组件的三种写法总结
2017/01/12 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
详解vuex的简单使用
2018/03/12 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
[03:57]DOTA2英雄梦之声_第03期_幻影刺客
2014/06/21 DOTA
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
Python遍历文件夹和读写文件的实现方法
2017/05/10 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
django的model操作汇整详解
2019/07/26 Python
解决Django 在ForeignKey中出现 non-nullable field错误的问题
2019/08/06 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
python实现井字棋小游戏
2020/03/04 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
市场营销专业个人自荐信格式
2013/09/21 职场文书
计算机维护专业推荐信
2014/02/27 职场文书
2014年招商工作总结
2014/11/22 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js