Python统计字符串中3/6/9出现频率返回最高值触发KeyError如何解决?
问题排查
- 核心错误为字典键与取值键的类型不匹配:定义的字典键是整数类型的
3、6、9,遍历输入字符串时拿到的元素el是字符串类型,二者为不同的键,查询时触发KeyError。 - 存在冗余代码:
x = len(str(n))无实际作用,可直接删除。 - 命名不规范:
dict是Python内置类型名,作为变量名会覆盖原生类型,易引发后续异常。
修正代码
def count_threes(n): # 初始化3、6、9的计数字典 count_dict = {3: 0, 6: 0, 9: 0} for el in n: num = int(el) # 仅统计目标数字,避免非预期数值的计数逻辑 if num in count_dict: count_dict[num] += 1 # 返回频次最高的数字 return max(count_dict, key=count_dict.get)
测试验证
输入示例'0939639'调用函数,返回结果为9,符合需求要求。
内容的提问来源于stack exchange,提问作者xyber
相关产品推荐
相关产品推荐

