Python 代码优化:字符出现次数统计
该代码统计字符串中每个字符出现的次数,并找出出现次数最多的字符。
n = int(input())
for _ in range(n):
a = input()
count = {}
for i in a:
if i in count:
count[i] += 1
else:
count[i] = 1
max_count = 0
for j in count:
if count[j] > max_count:
max_count = count[j]
max_char = j
elif count[j] == max_count:
if ord(j) < ord(max_char):
max_char = j
print(max_char,max_count)
代码没有明显的错误,但是可能存在以下问题:
- 代码没有对输入进行验证和处理,如果输入不是一个合法的整数,程序将会抛出异常。
- 代码没有处理字符串中的空格和特殊字符,只计算了字母的出现次数。
- 如果有多个字符出现次数相同且最大,代码只会输出第一个出现次数最大的字符,而不是所有出现次数最大的字符。
- 代码使用了一个无意义的循环变量
_,没有使用它来控制循环,可以直接使用range(n)。
改进建议:
- 使用
try-except语句对输入进行验证,确保输入为整数。 - 可以使用正则表达式或字符串方法过滤空格和特殊字符,只保留字母。
- 在统计出现次数时,可以使用列表存储所有出现次数最大的字符,最后输出列表中的所有字符。
- 可以直接使用
range(n)循环,省略无意义的循环变量。
示例代码:
n = int(input())
for _ in range(n):
a = input()
# 只保留字母
a = ''.join(filter(str.isalnum, a))
count = {}
for i in a:
if i in count:
count[i] += 1
else:
count[i] = 1
max_count = 0
max_chars = []
for j in count:
if count[j] > max_count:
max_count = count[j]
max_chars = [j]
elif count[j] == max_count:
max_chars.append(j)
print(*max_chars, max_count)
总结:
通过对输入进行验证、处理特殊字符以及优化最大字符输出,可以提升代码的健壮性和可读性。建议根据实际需求选择合适的改进方法。
原文地址: https://www.cveoy.top/t/topic/plwZ 著作权归作者所有。请勿转载和采集!