如何重构Python代码以统计数字频率而非字符频率?
统计数字频率的Python代码修改
原代码用于统计字母频率,现将其修改为统计数字频率的正确实现,解决原代码中的变量错误、判断逻辑错误等问题:
def count_numbers(text): import string result = {} # 遍历文本中的每个字符 for char in text: # 检查当前字符是否为数字 if char in string.digits: if char not in result: result[char] = 0 # 累加该数字的出现次数 result[char] += 1 return result
关键修改点:
- 函数名从
count_letters改为count_numbers,匹配新功能定位 - 循环变量替换为
char,避免使用Python内置关键字int作为变量名 - 判断条件改为
string.digits,仅筛选数字字符 - 移除字母转小写的逻辑,数字不存在大小写差异
- 修正原代码中变量名不一致的错误(原代码循环用
int却引用未定义的letter,导致运行报错)
测试验证:
print(count_numbers("This is a sentence.")) # 输出:{} print(count_numbers("55 North Center Drive")) # 输出:{'5': 2}
内容的提问来源于stack exchange,提问作者EdBoi4
相关产品推荐
相关产品推荐

