在Python中,我有一个由多个字典组成的列表,每个字典代表一个学生的信息,包括学生的姓名('name')、年龄('age')以及他们的课程成绩('scores'),其中'scores'是一个包含多门课成绩(整数)的列表。
我的任务是编写一个Python函数,该函数接受这样的列表作为输入,并返回一个新的字典,其中键是课程名称(这里假设所有学生的课程列表都是相同的,且课程名称未知,需要动态获取),值是一个包含该课程所有学生成绩(去重并排序)的列表。
在Python中,我有一个由多个字典组成的列表,每个字典代表一个学生的信息,包括学生的姓名('name')、年龄('age')以及他们的课程成绩('scores'),其中'scores'是一个包含多门课成绩(整数)的列表。
我的任务是编写一个Python函数,该函数接受这样的列表作为输入,并返回一个新的字典,其中键是课程名称(这里假设所有学生的课程列表都是相同的,且课程名称未知,需要动态获取),值是一个包含该课程所有学生成绩(去重并排序)的列表。
关注回答引用自GPT-4o,由博主小ᶻZ࿆编写,若还有疑问可评论或留言:
def aggregate_scores(students):
# 创建一个空的字典,用来存储课程名称和所有学生的成绩
course_scores = {}
# 遍历每个学生的信息
for student in students:
scores = student['scores']
for course, score in scores.items():
# 如果课程不在字典中,初始化为一个空列表
if course not in course_scores:
course_scores[course] = []
# 将该学生的该课程成绩添加到对应课程的列表中
course_scores[course].append(score)
# 对每个课程的成绩列表进行去重和排序
for course in course_scores:
course_scores[course] = sorted(list(set(course_scores[course])))
return course_scores
# 示例数据
students = [
{'name': 'Alice', 'age': 20, 'scores': {'math': 85, 'english': 90}},
{'name': 'Bob', 'age': 22, 'scores': {'math': 78, 'english': 85}},
{'name': 'Charlie', 'age': 21, 'scores': {'math': 85, 'science': 95}},
]
# 调用函数并输出结果
result = aggregate_scores(students)
print(result)