采用字典的方式,完成一个班级同学(5个人以上)的课程(5门课以上)成绩的存储工作,并能按照姓名,学号,各科成绩进行从大到小或者从小到大的排序输出。
时间: 2023-05-22 19:07:04 浏览: 74
好的,您需要一个能够存储班级同学成绩的数据结构。在这种情况下,使用一个字典可以很方便地实现这个目标。以下是一个存储班级同学成绩并进行排序的例子:
``` python
scores = {
'John': {'id': 1, 'math': 90, 'english': 80, 'chemistry': 85, 'history': 75},
'Jane': {'id': 2, 'math': 85, 'english': 90, 'chemistry': 80, 'history': 90},
'Bob': {'id': 3, 'math': 75, 'english': 85, 'chemistry': 90, 'history': 85},
'Alice': {'id': 4, 'math': 80, 'english': 75, 'chemistry': 95, 'history': 95},
'Peter': {'id': 5, 'math': 95, 'english': 95, 'chemistry': 80, 'history': 85}
}
# 按照字母顺序排序并输出
sorted_names = sorted(scores.keys())
for name in sorted_names:
student = scores[name]
print(f"Name: {name}, ID: {student['id']}, Math: {student['math']}, English: {student['english']}, Chemistry: {student['chemistry']}, History: {student['history']}")
# 对数值进行排序并输出
sorted_math_scores = sorted(scores.items(), key=lambda x: x[1]['math'])
for name, student in sorted_math_scores:
print(f"{name}: {student['math']}")
sorted_english_scores = sorted(scores.items(), key=lambda x: x[1]['english'], reverse=True)
for name, student in sorted_english_scores:
print(f"{name}: {student['english']}")
```
在这个例子中,我们按照字典的方式存储每个同学的成绩,包括学号、数学成绩、英语成绩、化学成绩、历史成绩。我们可以通过字典的“键-值对”结构轻松地按照姓名将每个同学的成绩存储在一个字典中。要按照姓名进行排序并输出,我们可以使用 Python 中的 sorted() 函数来对字典键进行排序。要按照数值(比如数学成绩或英语成绩)进行排序并输出,我们可以使用 sorted() 函数和 lambda 表达式来对字典值进行排序。
阅读全文