如何用Pythonic方式在循环中对字典列表内的分数求和?
用Pythonic方式对不同长度的学生分数列表求和
问题说明
需要遍历学生列表,对每个学生的分数列表求和,但不同学生的分数列表长度不一致,当前手动索引相加的写法无法适配所有情况,需要更简洁、通用的实现方式。
解决方案
直接使用Python内置的sum()函数对每个学生的points列表求和,同时在循环内完成结果输出,避免只保留最后一个学生的计算结果。
完整代码示例
student1 = {'name': 'Hans', 'points': [285, 210, 135, 100, 300]} student2 = {'name': 'Peter', 'points': [65, 56, 48]} students = [student1, student2] for stud in students: total_points = sum(stud['points']) print(f"{stud['name']}: {total_points}")
代码解释
sum(stud['points']):Python内置的sum()函数可直接对任意长度的可迭代对象(此处为分数列表)求和,完美适配不同长度的分数列表,比手动索引相加更简洁且不易出错。f"{stud['name']}: {total_points}":使用f-string格式化输出,清晰展示每个学生的名字和对应的总分,完全匹配期望输出格式。- 循环内直接打印结果:解决了原代码仅保留最后一个学生求和结果的问题,确保每个学生的分数总和都能被输出。
内容的提问来源于stack exchange,提问作者sc1919
相关产品推荐
相关产品推荐

