chiikawa&q 2024-09-24 15:24 采纳率: 93.3%
浏览 8
已结题

Python 的内置排序函数和过滤功能

假设你有一个包含字典的列表,每个字典存储了一些学生的基本信息(例如姓名、性别、年龄、成绩)。你的任务是编写一个函数,要求根据给定条件筛选学生,例如按年龄区间筛选(比如筛选出年龄在 18 到 25 岁之间的学生),并且按成绩降序排序输出筛选结果。最终输出应包含姓名和成绩。

要求:

函数应该能够接收学生列表、年龄的最小值和最大值作为参数;
输出按成绩降序排序,并只输出姓名和成绩。

  • 写回答

2条回答 默认 最新

  • 小ᶻ☡꙳ᵃⁱᵍᶜ꙳ 优质创作者: 人工智能技术领域 2024-09-28 13:23
    关注

    回答引用自GPT-4o,由博主小ᶻZ࿆编写,若还有疑问可评论或留言:

    在这个问题中,我们需要编写一个函数来过滤和排序学生的数据。为了实现这个目标,我们可以使用Python的内置函数 filter()sorted() 来处理数据。filter() 用于筛选符合年龄条件的学生,sorted() 用于按照成绩排序。具体实现如下:

    示例代码:

    def filter_and_sort_students(students, min_age, max_age):
        # 过滤出符合年龄要求的学生
        filtered_students = filter(lambda s: min_age <= s['age'] <= max_age, students)
        # 按成绩降序排序
        sorted_students = sorted(filtered_students, key=lambda s: s['grade'], reverse=True)
        
        # 输出结果
        for student in sorted_students:
            print(f"{student['name']} - 成绩: {student['grade']}")
    
    # 示例学生数据
    students = [
        {'name': 'Alice', 'age': 22, 'grade': 88},
        {'name': 'Bob', 'age': 19, 'grade': 75},
        {'name': 'Charlie', 'age': 24, 'grade': 92},
        {'name': 'David', 'age': 18, 'grade': 68},
        {'name': 'Eve', 'age': 20, 'grade': 95},
    ]
    
    # 调用函数筛选出18到25岁之间的学生,并按成绩降序排序
    filter_and_sort_students(students, 18, 25)
    

    解释:

    1. filter() 函数用于筛选符合年龄条件的学生。lambda s: min_age <= s['age'] <= max_age 是过滤条件。

    2. sorted() 函数将筛选后的学生按照成绩进行降序排序,key=lambda s: s['grade'] 指定以成绩作为排序依据,reverse=True 实现降序。

    输出结果:

    Eve - 成绩: 95
    Charlie - 成绩: 92
    Alice - 成绩: 88
    Bob - 成绩: 75
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月30日
  • 已采纳回答 9月29日
  • 修改了问题 9月24日
  • 创建了问题 9月24日