如何统计并输出所有DS测试得分均超50分的学生数量及姓名?
统计全部DS测试得分均超50分的学生
现有存储学生姓名与分数的列表和字典数据如下:
students = ['Sara', 'Zineb', 'Mohamed', 'Ali', 'Khadija', 'Idriss', 'Najat', 'Nadia', 'Marouane', 'Ahmed'] scores = {'DS': [[36, 58, 46, 96, 9, 82, 83, 66, 35, 47], [46, 50, 55, 21, 22, 76, 51, 90, 96, 48], [56, 54, 53, 17, 31, 74, 11, 53, 98, 67], [77, 38, 8, 74, 39, 39, 52, 66, 38, 86], [93, 21, 7, 33, 10, 97, 48, 96, 24, 7], [97, 98, 95, 75, 64, 9, 48, 51, 45, 82]], 'TP': [[48, 63, 98, 47, 25, 90, 100, 21, 41, 44], [73, 79, 78, 39, 11, 100, 57, 96, 13, 99]]}
需要编写Python代码,统计并输出所有在全部DS测试中得分均超过50分的学生数量及其姓名。
实现思路
- 提取
scores['DS']中的所有测试数据,通过转置将每一列转换为对应学生的所有DS成绩(原DS的每个子列表是一次测试的所有学生得分,转置后每个子列表对应一个学生的所有DS测试得分) - 遍历每个学生的成绩列表,判断是否所有分数都严格大于50
- 筛选出符合条件的学生,统计数量并输出结果
完整代码
# 提取DS模块的所有测试成绩 ds_tests = scores['DS'] # 转置测试成绩,得到每个学生的所有DS成绩列表 student_ds_scores = list(zip(*ds_tests)) # 筛选符合条件的学生 qualified_students = [] for name, scores_list in zip(students, student_ds_scores): # 验证该学生所有DS成绩是否均超过50分 if all(score > 50 for score in scores_list): qualified_students.append(name) # 输出统计结果 print(f"符合条件的学生数量:{len(qualified_students)}") print("符合条件的学生姓名:", qualified_students)
运行结果
执行代码后会输出:
符合条件的学生数量:1 符合条件的学生姓名: ['Nadia']
内容的提问来源于stack exchange,提问作者AI enthousiast
相关产品推荐
相关产品推荐

