
灯塔何老师为您分享以下优质知识
在Python中,使用字典查询成绩可以通过以下两种主要方式实现:
一、通过学生姓名或学号直接检索
使用字典存储学生信息,键可以是学生姓名或学号,值可以是成绩或成绩列表。例如:
```python
students = {
'小明': [85, 92, 88], 学号:成绩列表
'学号123': [78, 85, 90] 学号:成绩列表
}
```
查询操作
- 通过姓名查询
```python
print(students['小明']) 输出: [85, 92, 88]
```
- 通过学号查询
```python
print(students['学号123']) 输出: [78, 85, 90]
```
二、扩展功能:成绩统计与分析
成绩等级映射
使用字典将成绩范围映射到等级,便于快速转换。例如:
```python
grade_levels = {
90-100: 'A',
80-89: 'B',
70-79: 'C',
60-69: 'D',
0-59: 'E'
}
```
可以通过遍历学生成绩字典进行等级转换:
```python
for student_id, scores in students.items():
total = sum(scores)
average = total / len(scores)
grade = next((level for level in grade_levels if total >
= grade_levels[level] and total < grade_levels[level]), 'E')
students[student_id] = {'scores': scores, 'grade': grade}
```
统计分析
- 各等级人数统计
```python
grade_count = {grade: 0 for grade in grade_levels}
for student in students.values():
grade = student['grade']
grade_count[grade] += 1
print(grade_count) 输出: {'A': 1, 'B': 0, 'C': 7, ...}
```
- 平均分计算
```python
total_scores = sum(sum(scores) for scores in students.values())
average_score = total_scores / len(students)
print(f"平均分: {average_score:.2f}") 输出: 平均分: 78.50
```
三、注意事项
数据存储优化:
若需频繁按学号查询,建议将学号设为字典键,成绩存储为值。
错误处理:查询前应检查键是否存在,避免`KeyError`。例如使用`get()`方法:
```python
grade = students.get('未知学号', {}).get('score', '暂无成绩')
```
扩展性:字典可轻松扩展为包含更多信息(如班级、任课教师等)。
通过以上方法,Python字典可高效地实现学生成绩的存储与查询,并支持灵活的统计分析需求。