如何修改Python代码实现排除空格的字符出现次数+号统计直方图
def charHistogram(content: str): # 统计字母出现频次,过滤非字母字符并统一转小写 freq = {} for c in content.lower(): if c.isalpha(): freq[c] = freq.get(c, 0) + 1 # 按频次降序排序 sorted_freq = sorted(freq.items(), key=lambda x: x[1], reverse=True) # 格式化输出内容 output = [] for char, count in sorted_freq: output.append(f"{char} {'+' * count}") return '\n'.join(output) test_str = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac sem lorem. Integer elementum ultrices purus, sit amet malesuada tortor pharetra ac. Vestibulum sapien nibh, dapibus nec bibendum sit amet, sodales id justo.' print(charHistogram(test_str))
修改说明
- 新增字符过滤逻辑:遍历字符串时统一转为小写,通过
isalpha()方法仅保留字母字符,自动排除空格、标点等不需要统计的内容。 - 改用字典做频次统计:同一个字母仅保留一条统计记录,解决原代码重复输出相同字符的问题。
- 新增排序逻辑:将统计结果按字母出现次数降序排列,匹配预期的输出顺序。
- 调整输出格式:按要求的「字母 对应数量+号」规则拼接每行内容,输出结果和示例完全一致。
内容的提问来源于stack exchange,提问作者Joshua Bradley
相关产品推荐
相关产品推荐

