数据转换器
本课属于 Coddy Python 学习旅程的“逻辑与流程”单元。第 78 课,共 78 课。
挑战
困难创建一个名为 transform_dataset 的函数,用于处理学生记录列表并进行分析。
每条记录都是一个字典,包含:
student_id:学生的唯一标识符grades:由数字成绩组成的列表subjects:学生正在学习的科目列表
你的函数应当:
- 计算每位学生的平均成绩
- 只纳入所有成绩都高于 70 的学生(符合条件的学生),你应使用 Python 的
all()函数检查此条件 - 汇总符合条件的学生所学的科目,并统计每门科目有多少名符合条件的学生在学习
- 返回一个包含两个键的字典:
qualified_students:一个将学生 ID 映射到其平均成绩的字典(四舍五入到小数点后 2 位)subject_summary:一个将科目映射到学习该科目的符合条件学生人数的字典
注意:Python 中的 all() 函数仅当可迭代对象中的所有元素都为真时才返回 True。例如,all(grade > 70 for grade in grades) 仅当每个成绩都高于 70 时才会返回 True。
示例输入:
[
{
"student_id": "S123",
"grades": [88, 92, 85],
"subjects": ["Math", "Science", "History"]
},
{
"student_id": "S124",
"grades": [65, 95, 80],
"subjects": ["Math", "Science", "English"]
},
{
"student_id": "S125",
"grades": [91, 89, 92],
"subjects": ["Math", "Physics", "History"]
}
]示例输出:
{
'qualified_students': {'S123': 88.33, 'S125': 90.67},
'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}亲手试试
def transform_dataset(data):
# 在这里写你的答案
# 第 1 步:计算每位学生的平均成绩,并筛选出符合条件的学生
# (所有科目成绩都高于 70 分的学生)
# 第 2 步:汇总符合条件的学生所修的科目
# 第 3 步:返回包含 qualified_students 和 subject_summary 的最终字典
pass逻辑与流程中的所有课
自己练习: Python 在线编译器