145k views
1 vote
Course Aggregation Many times, departments are only interested with how students have done in courses relative to a specific major when considering applicants for admission purposes.

For this problem you are given a dictionary where the keys are strings representing student ids and the values are dictionaries where the keys represent a course code and the value represents a grade. Your task is to write a function that given a dictionary of the described format and a prefix for course codes, return a dictionary where each key is a student id and the corresponding value is the average grade of the student only in courses that start with the given prefix.
def course_grader (student_to_grades, course_prefix): ({str, {str, float}}) -> {str, float} I: a dictionary containing the grades of students (as described above) and a course code prefix P: compute and store the average grade of all students only for courses that start with the given course prefix 0: a dictionary of student ids to average grades as described in the Processing step pass

User Kellyann
by
8.6k points

1 Answer

2 votes

Answer:

def course_grader(student_to_grades, course_prefix):

student_grades = dict()

for key, value in student_to_grades.items():

grade_score = 0

for course,grade in value.items():

if course_prefix == course:

grade_score += grade

student_grades[key] = grade_score / len(value.keys())

return student_grades

Step-by-step explanation:

The course_grader function is a python program that accepts two arguments, the student dictionary and the course prefix. The function returns a dictionary of the student id as the key and the average grade of the student as the value.

User Scrotty
by
8.6k points