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 httplib,smtplib使用方法
Sep 06 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
Python实现在Linux系统下更改当前进程运行用户
Feb 04 Python
PyQt 线程类 QThread使用详解
Jul 16 Python
Python分支结构(switch)操作简介
Jan 17 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
查看django版本的方法分享
May 14 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 Python
Python values()与itervalues()的用法详解
Nov 27 Python
python jenkins 打包构建代码的示例代码
Nov 29 Python
关于tf.nn.dynamic_rnn返回值详解
Jan 20 Python
Selenium使用Chrome模拟手机浏览器方法解析
Apr 10 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
我的论坛源代码(二)
2006/10/09 PHP
PHP及Zend Engine的线程安全模型分析
2011/11/10 PHP
php开发文档 会员收费1期
2012/08/14 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
详解jQuery uploadify文件上传插件的使用方法
2016/12/16 Javascript
Angular.JS中的指令引用template与指令当做属性详解
2017/03/30 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
详解python实现识别手写MNIST数字集的程序
2018/08/03 Python
Python Django切换MySQL数据库实例详解
2019/07/16 Python
Python: 传递列表副本方式
2019/12/19 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
医学生自我评价
2014/01/27 职场文书
学生会主席演讲稿
2014/04/25 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
html粘性页脚的具体使用
2022/01/18 HTML / CSS
Nginx 常用配置
2022/05/15 Servers