小写字母频率柱状图

#首先,输入句子
lines = ''
while True:
    try:
        line = input()
        lines += line
    except EOFError:
        break
#其次,创建一个字典存储每个字母以及其个数初始化为0
lower_cnt_dict = {}
for i in range(26):
    ch = chr(ord('a') + i)
    lower_cnt_dict[ch] = 0

#判断句子中的字母,然后对字母的个数+1
for ch in lines:
    if ch.isalpha() and ch.islower():
        lower_cnt_dict[ch] += 1

#找出个数最多的数量,确定柱状图的行数
max_cnt = 0
for cnt in lower_cnt_dict.values():
    if max_cnt < cnt:
        max_cnt = cnt

#根据确定的行数创建相应数量的列表,每个列表长度为26,值为空白格
diagram = []
for i in range(max_cnt):
    diagram.append([' '] * 26)

#给每行的列表相应位置赋值*
for c in range(26):
    ch = chr(ord('a') + c)
    cnt = lower_cnt_dict[ch]
    for r in range(cnt):
        diagram[max_cnt - r - 1][c] = '*'

#循环输出每行列表
for r in range(max_cnt):
    print(''.join(diagram[r]))
for c in range(26):
    ch = chr(ord('a') + c)
    print(ch, end='')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值