Python脚本统计每个字符的次数/频数(字频统计)

您所在的位置:网站首页 python输入一段字符串 Python脚本统计每个字符的次数/频数(字频统计)

Python脚本统计每个字符的次数/频数(字频统计)

#Python脚本统计每个字符的次数/频数(字频统计)| 来源: 网络整理| 查看: 265

使用count()计数,可统计所有可显示字符

# -*- coding:utf-8 -*- # Author: MoChu7 alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()\_+-/={}[] "#所有正常打印字符 strings = open('./text.txt').read()#读取需要统计频数的文本 result = {} for i in alphabet: counts = strings.count(i) i = '{0}'.format(i) result[i] = counts res = sorted(result.items(), key=lambda item: item[1], reverse=True) num = 0 for data in res: num += 1 print('频数第{0}: {1}'.format(num, data)) print('\n---------------以下是频数从多到少的字符,按照从前到后排序---------------') for i in res: flag = str(i[0]) print(flag[0], end="")

运行结果如下例所示

频数第1: ('a', 32) 频数第2: ('g', 22) 频数第3: ('F', 22) 频数第4: ('1', 22) 频数第5: ('w', 20) 频数第6: ('e', 19) 频数第7: ('f', 13) 频数第8: ('h', 13) 频数第9: ('t', 13) 频数第10: ('u', 12) 频数第11: ('A', 12) 频数第12: ('7', 12) 频数第13: ('#', 12) 频数第14: ('4', 11) 频数第15: ('!', 11) 频数第16: ('/', 10) 频数第17: ('z', 9) 频数第18: ('S', 9) 频数第19: ('5', 9) 频数第20: ('\\', 9) 频数第21: ('i', 8) 频数第22: ('6', 8) 频数第23: ('8', 8) 频数第24: ('0', 8) 频数第25: ('%', 8) 频数第26: ('b', 7) 频数第27: ('r', 7) 频数第28: ('H', 7) 频数第29: (' ', 7) 频数第30: ('p', 6) 频数第31: ('q', 6) 频数第32: ('v', 6) 频数第33: ('G', 6) 频数第34: ('Z', 6) 频数第35: ('2', 6) 频数第36: ('9', 6) 频数第37: ('-', 6) 频数第38: ('o', 5) 频数第39: ('O', 5) 频数第40: ('W', 5) 频数第41: ('$', 5) 频数第42: ('*', 5) 频数第43: ('=', 5) 频数第44: ('}', 5) 频数第45: ('[', 5) 频数第46: (']', 5) 频数第47: ('s', 4) 频数第48: ('y', 4) 频数第49: ('I', 4) 频数第50: ('R', 4) 频数第51: ('T', 4) 频数第52: ('X', 4) 频数第53: (')', 4) 频数第54: ('d', 3) 频数第55: ('k', 3) 频数第56: ('n', 3) 频数第57: ('C', 3) 频数第58: ('D', 3) 频数第59: ('E', 3) 频数第60: ('Q', 3) 频数第61: ('V', 3) 频数第62: ('@', 3) 频数第63: ('^', 3) 频数第64: ('&', 3) 频数第65: ('(', 3) 频数第66: ('_', 3) 频数第67: ('+', 3) 频数第68: ('c', 2) 频数第69: ('x', 2) 频数第70: ('B', 2) 频数第71: ('J', 2) 频数第72: ('K', 2) 频数第73: ('L', 2) 频数第74: ('U', 2) 频数第75: ('Y', 2) 频数第76: ('3', 2) 频数第77: ('{', 2) 频数第78: ('j', 1) 频数第79: ('l', 1) 频数第80: ('m', 1) 频数第81: ('P', 1) 频数第82: ('M', 0) 频数第83: ('N', 0) ---------------以下是频数从多到少的字符,按照从前到后排序--------------- agF1wefhtuA7#4!/zS5\i680%brH pqvGZ29-oOW$*=}[]syIRTX)dknCDEQV@^&(_+cxBJKLUY3{jlmPMN

使用正则匹配查找计数,只能统计所有大小写字母、数字以及空格,无法统计特殊字符

# -*- coding:utf-8 -*- # Author: MoChu7 import re file = open('./text.txt') # 读取文件的路径 line = file.readlines() file.seek(0, 0) file.close() result = {} # 使用字典来保存查询信息 strings = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 " for i in strings: count = 0 for j in line: find_line = re.findall(i, j) # 查找出每一行匹配的字母 count += len(find_line) # 把每一行的查询结果数相加 result[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

运行结果如下例所示

频数第1: ('a', 32) 频数第2: ('g', 22) 频数第3: ('F', 22) 频数第4: ('1', 22) 频数第5: ('w', 20) 频数第6: ('e', 19) 频数第7: ('f', 13) 频数第8: ('h', 13) 频数第9: ('t', 13) 频数第10: ('u', 12) 频数第11: ('A', 12) 频数第12: ('7', 12) 频数第13: ('4', 11) 频数第14: ('z', 9) 频数第15: ('S', 9) 频数第16: ('5', 9) 频数第17: ('i', 8) 频数第18: ('6', 8) 频数第19: ('8', 8) 频数第20: ('0', 8) 频数第21: ('b', 7) 频数第22: ('r', 7) 频数第23: ('H', 7) 频数第24: (' ', 7) 频数第25: ('p', 6) 频数第26: ('q', 6) 频数第27: ('v', 6) 频数第28: ('G', 6) 频数第29: ('Z', 6) 频数第30: ('2', 6) 频数第31: ('9', 6) 频数第32: ('o', 5) 频数第33: ('O', 5) 频数第34: ('W', 5) 频数第35: ('s', 4) 频数第36: ('y', 4) 频数第37: ('I', 4) 频数第38: ('R', 4) 频数第39: ('T', 4) 频数第40: ('X', 4) 频数第41: ('d', 3) 频数第42: ('k', 3) 频数第43: ('n', 3) 频数第44: ('C', 3) 频数第45: ('D', 3) 频数第46: ('E', 3) 频数第47: ('Q', 3) 频数第48: ('V', 3) 频数第49: ('c', 2) 频数第50: ('x', 2) 频数第51: ('B', 2) 频数第52: ('J', 2) 频数第53: ('K', 2) 频数第54: ('L', 2) 频数第55: ('U', 2) 频数第56: ('Y', 2) 频数第57: ('3', 2) 频数第58: ('j', 1) 频数第59: ('l', 1) 频数第60: ('m', 1) 频数第61: ('P', 1) 频数第62: ('M', 0) 频数第63: ('N', 0)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3