用Python采用字典的方式,完成一个班级同学(5个人以上)的课程(5门课以上)成绩的存储工作,并能按照姓名,学号,各科成绩进行从大到小或者从小到大的排序输出。
时间: 2023-05-23 09:04:34 浏览: 60
班级姓氏柱状图统计.7z
代码如下:
```python
# 定义班级成绩字典
scores = {
'001': {'name': '张三', 'Math': 90, 'English': 80, 'Chinese': 85, 'Physics': 78, 'Chemistry': 88},
'002': {'name': '李四', 'Math': 85, 'English': 95, 'Chinese': 82, 'Physics': 87, 'Chemistry': 92},
'003': {'name': '王五', 'Math': 88, 'English': 85, 'Chinese': 90, 'Physics': 91, 'Chemistry': 80},
'004': {'name': '赵六', 'Math': 92, 'English': 87, 'Chinese': 91, 'Physics': 88, 'Chemistry': 85},
'005': {'name': '钱七', 'Math': 80, 'English': 92, 'Chinese': 89, 'Physics': 90, 'Chemistry': 83},
}
# 按姓名排序
sorted_scores_name = sorted(scores.items(), key=lambda x: x[1]['name'])
print("按姓名排序结果:")
for s in sorted_scores_name:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
# 按学号排序
sorted_scores_id = sorted(scores.items(), key=lambda x: x[0])
print("按学号排序结果:")
for s in sorted_scores_id:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
# 按数学成绩排序
sorted_scores_math = sorted(scores.items(), key=lambda x: x[1]['Math'])
print("按数学成绩排序结果:")
for s in sorted_scores_math:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
# 按英语成绩排序
sorted_scores_english = sorted(scores.items(), key=lambda x: x[1]['English'])
print("按英语成绩排序结果:")
for s in sorted_scores_english:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
# 按语文成绩排序
sorted_scores_chinese = sorted(scores.items(), key=lambda x: x[1]['Chinese'])
print("按语文成绩排序结果:")
for s in sorted_scores_chinese:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
# 按物理成绩排序
sorted_scores_physics = sorted(scores.items(), key=lambda x: x[1]['Physics'])
print("按物理成绩排序结果:")
for s in sorted_scores_physics:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
# 按化学成绩排序
sorted_scores_chemistry = sorted(scores.items(), key=lambda x: x[1]['Chemistry'])
print("按化学成绩排序结果:")
for s in sorted_scores_chemistry:
print(s[1]['name'], s[1]['Math'], s[1]['English'], s[1]['Chinese'], s[1]['Physics'], s[1]['Chemistry'])
```
其中,代码中scores字典中的分数可以自行修改,排序结果会根据修改后的分数重新排序输出。
阅读全文