计算机大神 2022-08-24 22:36 采纳率: 58.3%
浏览 44
已结题

python寻找字符出现频率

你需要完成以下三个功能:

get_letter_frequencies()函数,它接受单个字符串参数text。该函数处理文本,计算字母出现的频率。大小写的差异应该被忽略——“A”和“A”都将增加字母“A”的出现频率。字母频率存储在一个整数列表中。列表中的第一项是字母“a”的出现频率,列表中的第二项是字母“b”的出现频率,以此类推。函数必须返回这个列表。
print_chart()函数,它接受单个列表形参letter_frequencies,其中包含字母字符的频率。该函数遍历这个列表,并打印出一个垂直条形图,用于显示频率大于0的所有字符的频率。对于频率大于0的每个字符,函数输出该字母,后面跟着一个“|”,然后是一系列表示字母频率的“#”字符。例如,如果字母“a”的频率为5,则将打印柱状图中的以下行:a|井号井号此函数不返回值。
process_text()函数接受单个字符串参数——文本。该函数将该字符串作为参数传递给get_letter_frequencies()函数的调用,以获取文本的字母频率列表。然后将该列表作为参数传递给print_chart()函数的调用,以打印字母频率的条形图。此函数不返回值。

img

img

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-08-24 22:53
    关注
    def get_letter_frequencies(text):
        text=text.lower()
        lst=[0]*26
        for c in text:
            if c.isalpha():
                index=ord(c)-97
                lst[index]+=1
        return lst
    
    def print_chart(letter_frequencies):
        for i in range(26):
            if letter_frequencies[i]>0:
                print(chr(i+97)+'|'+'#'*letter_frequencies[i])
    def process_text(s):
        letter_frequencies=get_letter_frequencies(s)
        print_chart(letter_frequencies)
        
    process_text('Hello world')
    print('\n\n')
    process_text('Fortune favors the bold')
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月2日
  • 已采纳回答 8月25日
  • 创建了问题 8月24日

悬赏问题

  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染