栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

(Python)字母频率统计

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(Python)字母频率统计

文章目录
    • 【问题描述】
    • 【输入形式】
    • 【输出形式】
    • 【样例输入】
    • 【样例输出】
    • 【样例说明】
    • 【评分标准】
    • 【题解】

【问题描述】

编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并以柱状图的形式显示其出现次数。

【输入形式】

在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键表示结束。

【输出形式】

在屏幕上依次输出表示每个小写字母出现次数的柱状图(以"“字符表示柱状图,空白处用空格字符表示,某个小写字母出现多少次,就显示多少”"字符;柱状图的高度以出现最多的字母次数为准),在最后一行依次输出26个小写字母。

【样例输入】

The computing world has undergone a
revolution since the publication of
The C Programming Language in 1978.

【样例输出】

【样例说明】

在输入的英文短文中,小写字母a出现了6次,所以其上输出了6个字符"*"。出现次数最多的是字母n,所以柱状图的高度为9个字符。字母j没有出现,所以其上都为空格字符。

【评分标准】

共有5个测试点。

【题解】
string = ''
try:
    for line in iter(input, ''):
        string += line + 'n'
except EOFError:
    pass
letters = {}
letter_list = []
for letter_asc in range(97, 123):
    letter = chr(letter_asc)
    letter_list.append(letter)
    letters[letter] = 0
for letter in letter_list:
    num = string.count(letter)
    letters[letter] = num
occurCounts_list = []
for v in letters.values():
    occurCounts_list.append(v)
occur_max = max(occurCounts_list)
result_list = [[0] * 26 for i in range(occur_max)]
for i in range(len(occurCounts_list)):
    for k in range(occurCounts_list[i]):
        result_list[k][i] = '*'
for i in range(len(result_list) - 1, -1, -1):
    for j in range(len(result_list[i])):
        if result_list[i][j] == 0:
            result_list[i][j] = ' '
        print(result_list[i][j], end='')
    print()
for i in letters.keys():
    print(i, end='')

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/488373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号