python字典统计学生成绩排列等级
时间: 2024-07-03 22:00:55 浏览: 171
在Python中,你可以使用字典来存储学生的成绩,然后结合统计和排序的方法来生成成绩排名。以下是一个简单的步骤:
1. **创建字典**:首先,定义一个字典,其中键是学生的名字,值是他们的成绩。例如:
```python
scores = {
"Alice": 85,
"Bob": 92,
"Charlie": 78,
"Dave": 95,
"Eve": 88
}
```
2. **统计**:使用内置的`collections.Counter`来计算每个分数出现的次数,如果需要等级(如A、B、C等),可以设置分段阈值。
```python
from collections import Counter
grade_thresholds = (90, 80, 70) # 分数划分点
grades = {i: 'A' for i in range(90, 101)} # 假设90分及以上为A级
for i, k in enumerate(sorted(scores.values(), reverse=True)):
grades[k] = 'B' if i >= grade_thresholds else 'C' if i >= grade_thresholds else 'D'
grade_counts = Counter(grades.values())
```
3. **生成排名**:对字典按照成绩排序,然后根据分数和等级生成排名。可以用`sorted`函数配合自定义的排序关键字(成绩和等级)来实现。
```python
students_with_ranks = {}
for name, score in sorted(scores.items(), key=lambda x: (-grade_counts[x], x)):
students_with_ranks[name] = {"score": score, "grade": grades[score], "rank": rank + 1}
rank += 1 # rank初始化为1,每次循环后加1
```
4. **输出结果**:最后,你可以打印或返回这个包含学生信息、成绩、等级和排名的字典。
阅读全文