如何简化通过for循环求字典内输入值平均值的Python代码行数
Python字典存储分数的平均值计算精简实现
优化点说明
- 使用Python内置
sum()函数替代手动循环累加逻辑,省去自定义求和变量和遍历循环代码 - 合并平均值计算与格式化打印逻辑,减少不必要的中间变量声明
- 修复原代码潜在问题:原代码使用
len(scores)获取分母长度,scores是录入环节最后一个学生的分数列表,若查询学生的科目数量和最后录入的学生不一致会导致计算错误,优化后直接取查询学生对应分数列表的长度,逻辑更严谨。
精简后完整代码
(默认适配编程题输入合法场景,即查询名一定存在,比原版本减少5行冗余代码)
if __name__ == '__main__': n = int(input()) student_marks = {} for _ in range(n): name, *line = input().split() student_marks[name] = list(map(float, line)) q = input() print(f"{sum(student_marks[q])/len(student_marks[q]):.2f}")
如果需要兼容查询名不存在的场景,仅需调整最后一行即可:
if __name__ == '__main__': n = int(input()) student_marks = {} for _ in range(n): name, *line = input().split() student_marks[name] = list(map(float, line)) q = input() print(f"{sum(student_marks[q])/len(student_marks[q]):.2f}" if q in student_marks else "未查询到对应学生")
内容的提问来源于stack exchange,提问作者Mohd Rafi
相关产品推荐
相关产品推荐

