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时区设置方法与pytz查询时区教程
Nov 27 Python
5款非常棒的Python工具
Jan 05 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Python3.5 创建文件的简单实例
Apr 26 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
树莓派实现移动拍照
Jun 22 Python
在pycharm中实现删除bookmark
Feb 14 Python
python生成并处理uuid的实现方式
Mar 03 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
浅析Python __name__ 是什么
Jul 07 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 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中请求url的五种方法总结
2017/07/13 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
javascript实现在网页中运行本地程序的方法
2016/02/03 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
Flask之flask-session的具体使用
2018/07/26 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
2016/01/11 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
澳大利亚手袋、珠宝和在线时尚精品店:The Way
2019/12/21 全球购物
Contém1g官网:巴西彩妆品牌
2020/01/17 全球购物
机关门卫岗位职责
2013/12/30 职场文书
销售总监岗位职责
2014/01/04 职场文书
美德好少年主要事迹
2014/01/29 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
广告设计应届生求职信
2014/03/01 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
写给女朋友的保证书
2015/05/09 职场文书
2015年路政工作总结
2015/05/22 职场文书
诚实守信主题班会
2015/08/13 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
中学教代会开幕词
2016/03/04 职场文书