Python3实现统计单词表中每个字母出现频率的方法示例
本文实例讲述了Python3实现统计单词表中每个字母出现频率的方法。分享给大家供大家参考,具体如下:
作为python字典与数组概念的运用,统计字母表中每个字母出现的频率,作为练习再合适不过。
解决问题过程中需要用到的知识点包括:字典的创建、增添元素,数组的创建、增添元素,数组的遍历等
这个问题解决的思路为:首先从文件中按行依次读入单词,去除换行符后添加到数组new_list中。依次遍历数组new_list的每一个字符串,将每个字符串连同上一次循环中的频率统计结果old_d(old_d在遍历new_list之前进行初始化)一起作为实参传递给频率统计函数histogram()。histogram()函数在上一轮频率统计基础上得出本轮频率统计结果,结果通过字典d传回,将值赋给old_d。直到遍历完new_list,再将old_d统计结果打印。
'''transformstringintodictionary sisinputstring disdictionarytorestoreeverybitinstring ''' defhistogram(s,old_d): d=old_d forcins: d[c]=d.get(c,0)+1 returnd '''Thisfunctioncancalculatethefrequencyofeveryletterinalphabet ''' fin=open("words.txt") new_list=[] forlineinfin: rs=line.rstrip('\n')#deletethe'\n'aftereveryletter new_list.append(rs)#new_listisusedtorestoreletters old_d=dict()#initializethedictionary foriinrange(len(new_list)):#calculatetheletter #frequencyofeveryword old_d=histogram(new_list[i],old_d)#old_disusedto #restoreletterfrequencybeforenew_list[i] print(old_d)
这里words.txt文档内容如下:
Butsoftwhatlightthroughyonderwindowbreaks
ItistheeastandJulietisthesun
Arisefairsunandkilltheenviousmoon
Whoisalreadysickandpalewithgrief
代码运行结果:
{'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}
PS:这里再为大家推荐2款相关统计工具供大家参考:
在线字数统计工具:
http://tools.jb51.net/code/zishutongji
在线字符统计与编辑工具:
http://tools.jb51.net/code/char_tongji
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。