Python的字典类型实现统计文件字符个数和出现次数

先记一次尴尬的学习过程

在家诚大佬的极力鼓动下,我相信了成为Python全栈数据工程师并不太难,并决定跟着某全栈工程的课本深入了解下数据工程的全套流程。 然而第一个实例(hello,world除外)就出现了问题,2017出版Python书竟然用的是Python2.7的版本。随后决定用python3重新实现一下书本内容。 此实例包括后续版本的实例都会在此分享,欢迎大家一起交流学习。

背景

对于一本书籍或者刊物,了解其不同字数及其出现频率对于了解一本书的主要内容和分类都是非常有用的。并且在后续学习自然语言后,还可以通过其他方法统计词数和频率,因而此基础程序还是值得实现一下的。

算法原理

对于统计出现汉字的种类和频率,可以通过Python的字典类型进行实现,具体字典的使用方法见菜鸟教程Python3字典
这里用到了字典基本的建立,value调用,键值对增加,value修改,以及items()函数。

编程实现

流程:文件遍历-除去空白——判断字典中有无该字符——有则Value加1,无则新建为1——按Value排序并返回

具体实现代码如下:

#统计txt文件中的字符频率
def countwords(txt):
    stat = {}#建立字典存储存储字符和对应频率
    for line in txt:
        line = line.strip()
        if len(line) == 0:
            continue
        for i in range(len(line)):
        #判断有无该字符的键
            if(line[i] in stat):
                stat[line[i]]+=1
            else:
                stat[line[i]]=1
    result=sorted(stat.items(),key = lambda x:x[1],reverse = True)#按value大小排序
    return result
xyj = open('xyj.txt' ,'r',encoding = 'utf-8')#读文件
r=countwords(xyj)#调用函数
xyj.close

你可能感兴趣的:(Python数据处理)