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中关于日期时间处理的问答集锦
Mar 08 Python
Python实现针对中文排序的方法
May 09 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
Python 中的Selenium异常处理实例代码
May 03 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
Python Tkinter 简单登录界面的实现
Jun 14 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
用python实现学生管理系统
Jul 24 Python
python使用布隆过滤器的实现示例
Aug 20 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
Feb 20 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 解决session死锁的方法
2013/06/20 PHP
PHP实现货币换算的方法
2014/11/29 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
2017/12/21 PHP
BOM与DOM的区别分析
2010/10/26 Javascript
JavaScript Promise启示录
2014/08/12 Javascript
Linux下编译安装php libevent扩展实例
2015/02/14 Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
2015/12/13 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
微信开发 微信授权详解
2016/10/21 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
Vuex 模块化使用详解
2019/07/31 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
CentOS6.5设置Django开发环境
2016/10/13 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python实现多张图片拼接成大图
2019/01/15 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Python: 传递列表副本方式
2019/12/19 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
农民致富事迹材料
2014/01/23 职场文书
团日活动策划书
2014/02/01 职场文书
美容院营销方案
2014/03/05 职场文书
万能检讨书
2015/01/27 职场文书
辞职信如何写
2015/02/27 职场文书
费城故事观后感
2015/06/10 职场文书
Python获取字典中某个key的value
2022/04/13 Python