如何调整Python字符统计函数,使未出现的指定字符计数返回0
字符计数函数调整方案
核心修改逻辑
原代码仅统计实际出现在文本中的目标字符,未对未匹配到的目标字符做初始化。只需在计数开始前,将所有需要统计的目标字符统一初始化为0存入返回字典,即可保证未出现的字符也存在于结果中。
具体修改点
- 对传入的目标字符参数(原代码中的
let)统一转小写,适配文本转小写后的遍历逻辑,避免大小写不匹配问题 - 提前用字典推导式生成包含所有目标字符的初始字典,每个字符对应值为
0 - 提前将目标字符转为小写集合做匹配,提升遍历查询效率
- 因所有目标字符已提前初始化到字典中,无需额外判断键是否存在,直接累加计数即可
修改后的代码片段
# 初始化所有目标字符为0,转小写保证和text.lower()的结果匹配 count = {char.lower(): 0 for char in let} # 转成小写集合做匹配,查询效率更高 target_chars = set(let.lower()) for l in text.lower(): if l in target_chars: count[l] += 1 return count
效果验证
对应示例的调用方式(修正原示例中缺失的右括号):
example = "Sample String" print(func(example, "sao")) # 实际输出:{'s': 2, 'a': 1, 'o': 0}
内容的提问来源于stack exchange,提问作者trinidad34
相关产品推荐
相关产品推荐

