Pythonはテキスト内の各文字の頻度をカウントします(テキスト内の文字の頻度をカウントするためのスクリプト)

その他の項目を行うとき、txt内のすべての文字の回数を数え、上位16件を最も頻繁に抽出する必要があるため、記録するスクリプトを作成しました

クリtxtの内容は次のとおりです。
ここに画像の説明を挿入

# -*- coding:utf-8 -*-
#Author: M0c1nu7
#Python3
import re

file = open('C:/Users/Administrator/Downloads/attachment/read/11.txt')#读取文件的路径
line = file.readlines()
file.seek(0,0)
file.close()

result = {
    
    }#使用字典来保存查询信息
for i in range(97,123):#26位小写字母
	count = 0
	for j in line:
		find_line = re.findall(chr(i),j.lower())#查找出每一行匹配的字母,先转换小写再比对
		count += len(find_line)#把每一行的查询结果数相加
	result[chr(i)] = count#向字典存入每个字母的最终查询的结果
res = sorted(result.items(),key=lambda item:item[1],reverse=True)#对字典的value进行排序,降序,res是一个可迭代对象

num = 1
for x in res:#递归输出一下字典的每一个元素
		print('频数第{0}: '.format(num),x)
		num += 1 

結果は次のとおりです。

PS C:\Users\Administrator\Desktop> python .\word.py
频数第1:  ('e', 39915)
频数第2:  ('t', 29048)
频数第3:  ('a', 26590)
频数第4:  ('o', 26141)
频数第5:  ('h', 22531)
频数第6:  ('n', 21825)
频数第7:  ('r', 21650)
频数第8:  ('i', 20815)
频数第9:  ('s', 19714)
频数第10:  ('d', 16617)
频数第11:  ('l', 14594)
频数第12:  ('u', 9755)
频数第13:  ('g', 8619)
频数第14:  ('y', 8619)
频数第15:  ('w', 8397)
频数第16:  ('m', 7394)
频数第17:  ('f', 6857)
频数第18:  ('c', 6696)
频数第19:  ('p', 5548)
频数第20:  ('b', 5328)
频数第21:  ('k', 4009)
频数第22:  ('v', 2908)
频数第23:  ('q', 420)
频数第24:  ('x', 383)
频数第25:  ('j', 370)
频数第26:  ('z', 264)

おすすめ

転載: blog.csdn.net/mochu7777777/article/details/107948700