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实现中文输出的两种方法
May 09 Python
Python基础教程之利用期物处理并发
Mar 29 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
用pycharm开发django项目示例代码
Jun 13 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
Python 使用type来定义类的实现
Nov 19 Python
利用Python脚本实现自动刷网课
Feb 03 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
Python pexpect模块及shell脚本except原理解析
Aug 03 Python
Python中22个万用公式的小结
Jul 21 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+js iframe实现上传头像界面无跳转
2014/04/29 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
php利用smtp类实现电子邮件发送
2015/10/30 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
写js时遇到的一些小问题
2010/12/06 Javascript
深入理解Javascript作用域与变量提升
2013/12/09 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
理解javascript中的闭包
2017/01/11 Javascript
基于jQuery封装的分页组件
2017/06/26 jQuery
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
js模拟实现百度搜索
2020/06/28 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
龙猫观后感
2015/06/09 职场文书
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
公历12个月名称的由来
2022/04/12 杂记
Nginx HTTP跳转至HTTPS
2022/05/15 Servers
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python