假设你有一个包含字典的列表,每个字典存储了一些学生的基本信息(例如姓名、性别、年龄、成绩)。你的任务是编写一个函数,要求根据给定条件筛选学生,例如按年龄区间筛选(比如筛选出年龄在 18 到 25 岁之间的学生),并且按成绩降序排序输出筛选结果。最终输出应包含姓名和成绩。
要求:
函数应该能够接收学生列表、年龄的最小值和最大值作为参数;
输出按成绩降序排序,并只输出姓名和成绩。
假设你有一个包含字典的列表,每个字典存储了一些学生的基本信息(例如姓名、性别、年龄、成绩)。你的任务是编写一个函数,要求根据给定条件筛选学生,例如按年龄区间筛选(比如筛选出年龄在 18 到 25 岁之间的学生),并且按成绩降序排序输出筛选结果。最终输出应包含姓名和成绩。
要求:
函数应该能够接收学生列表、年龄的最小值和最大值作为参数;
输出按成绩降序排序,并只输出姓名和成绩。
关注回答引用自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)
filter() 函数用于筛选符合年龄条件的学生。lambda s: min_age <= s['age'] <= max_age 是过滤条件。
sorted() 函数将筛选后的学生按照成绩进行降序排序,key=lambda s: s['grade'] 指定以成绩作为排序依据,reverse=True 实现降序。
Eve - 成绩: 95
Charlie - 成绩: 92
Alice - 成绩: 88
Bob - 成绩: 75