彼岸z 2024-09-24 00:38 采纳率: 100%
浏览 31
已结题

如何在Python中,每个字典代表一个学生的信息,包括学生的姓名('name')、年龄('age')以及他们的课程成绩('scores'),其中'scores'是一个包含多门课成绩(整数)的列表?

在Python中,我有一个由多个字典组成的列表,每个字典代表一个学生的信息,包括学生的姓名('name')、年龄('age')以及他们的课程成绩('scores'),其中'scores'是一个包含多门课成绩(整数)的列表。

我的任务是编写一个Python函数,该函数接受这样的列表作为输入,并返回一个新的字典,其中键是课程名称(这里假设所有学生的课程列表都是相同的,且课程名称未知,需要动态获取),值是一个包含该课程所有学生成绩(去重并排序)的列表。

  • 写回答

3条回答 默认 最新

  • 小ᶻ☡꙳ᵃⁱᵍᶜ꙳ 优质创作者: 人工智能技术领域 2024-10-06 12:08
    关注

    回答引用自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)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月6日
  • 已采纳回答 10月6日
  • 创建了问题 9月24日