如何修改Python代码统计字符出现次数并输出对应数量星号
代码修改结果
def numberofletters(filename: str): g = list(filename) f = [] for x in set(g): f.append(x) return f def numberofwords(filename): r = [] # 获取所有不重复字符,避免重复统计 unique_chars = numberofletters(filename) for x in unique_chars: r.append([x, filename.count(x)*('*')]) return r # 逐行输出符合要求的格式 result = numberofwords("How was your day") for line in result: print(line[0], line[1])
核心修改点
- 原代码中
numberofwords函数遍历的是完整输入字符串的每个字符,导致同一个字符被重复统计多次,现在修改为遍历numberofletters返回的不重复字符列表,每个字符仅统计一次 - 原代码往结果列表中追加内容时误把完整的不重复字符列表写入,现在修改为仅写入当前正在统计的单个字符
- 新增逐行打印逻辑,不再直接打印整个列表,输出格式和要求的样例一致
运行说明
因为set本身是无序容器,所以输出的字符顺序不固定,若需要调整输出顺序可以做额外逻辑判断。如果不需要统计空格,可在循环中添加if x != ' '的过滤条件即可。
内容的提问来源于stack exchange,提问作者Joshua Bradley
相关产品推荐
相关产品推荐

