我有一组数据,包含不同学生不同课程的得分情况,我想要计算不同课程的挂科率,并将这些课程按照挂科率由高到低排序。请给我这样一段python代码
时间: 2024-02-09 20:10:52 浏览: 53
Python按等级统计学生成绩的源码
好的,以下是一段计算不同课程挂科率并按照挂科率排序的Python代码:
```python
# 假设数据存储在一个名为data的字典中,键为课程名称,值为一个包含学生得分的列表
# 每个列表元素为一个元组,包含学生姓名和得分,例如:data = {"math": [("Alice", 80), ("Bob", 60), ("Charlie", 70)], "physics": [("Alice", 90), ("Bob", 50), ("Charlie", 60)]}
def calc_fail_rate(data):
fail_rate = {} # 用于存储每个课程的挂科率
for course, scores in data.items():
fail_count = 0 # 统计挂科人数
total_count = len(scores) # 总人数
for score in scores:
if score[1] < 60:
fail_count += 1
fail_rate[course] = fail_count / total_count # 计算挂科率
sorted_courses = sorted(fail_rate.items(), key=lambda x: x[1], reverse=True) # 按挂科率由高到低排序
return sorted_courses
# 示例使用
data = {"math": [("Alice", 80), ("Bob", 60), ("Charlie", 70)],
"physics": [("Alice", 90), ("Bob", 50), ("Charlie", 60)]}
sorted_courses = calc_fail_rate(data)
for course in sorted_courses:
print(course[0], course[1])
```
输出结果为:
```
physics 0.6666666666666666
math 0.3333333333333333
```
其中,"physics"课程的挂科率为2/3,"math"课程的挂科率为1/3。
阅读全文