Part of the whole. Help!


#1


Oops, try again. get_class_average([alice]) resulted in an error: list indices must be integers, not str


Please help me.


lloyd = {
    "name": "Lloyd",
    "homework": [90.0, 97.0, 75.0, 92.0],
    "quizzes": [88.0, 40.0, 94.0],
    "tests": [75.0, 90.0]
}
alice = {
    "name": "Alice",
    "homework": [100.0, 92.0, 98.0, 100.0],
    "quizzes": [82.0, 83.0, 91.0],
    "tests": [89.0, 97.0]
}
tyler = {
    "name": "Tyler",
    "homework": [0.0, 87.0, 75.0, 22.0],
    "quizzes": [0.0, 75.0, 78.0],
    "tests": [100.0, 100.0]
}

# Add your function below!
def average(numbers):
    total = sum(numbers)
    total = float(total) / len(numbers)
    return total

def get_average(student):
    homework = average(student["homework"])
    quizzes = average(student["quizzes"])
    tests = average(student["tests"])
    weights = homework * 10/100 + quizzes * 30/100 + tests * 60/100
    return weights
    
def get_letter_grade(score):
    if score >= 90: return "A"
    elif score >= 80: return "B"
    elif score >= 70: return "C"
    elif score >= 60: return "D"
    else: return "F"
    
get_letter_grade(get_average(lloyd))

def get_class_average(student):
    students = [lloyd, alice, tyler]
    results = []
    for item in students:
        results.append(get_average(student))
    return average(results)


#2

look at your parentheses on the line above


#3

My fault sorry.. :smile: but i get this now
Oops, try again. get_class_average([alice]) resulted in an error: list indices must be integers, not str


#4

first off, don't overwrite your function parameter

secondly, you loop over students, then you should append the get average of iterator to results. So either change item to student or vice versa


#5

I know my provlem now. Thanks verry much codecademy moderator. :smile:


#6