Python: Variance of a list of defined numbers -


i trying make function prints variance of list of defined numbers:

grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5] 

so far, have tried proceeding on making these 3 functions:

def grades_sum(my_list):     total = 0     grade in my_list:          total += grade     return total  def grades_average(my_list):     sum_of_grades = grades_sum(my_list)     average = sum_of_grades / len(my_list)     return average  def grades_variance(my_list, average):     variance = 0     in my_list:         variance += (average - my_list[i]) ** 2     return variance / len(my_list) 

when try execute code, however, gives me following error @ following line:

line: variance += (average - my_list[i]) ** 2 error: list index out of range 

apologies if current python knowledges limited, still learning - please if wish solving issue try not suggest extremely-complicated ways on how solve this, thank much.

first suggest using python's built-in sum method replace first custom method. grades_average becomes:

def grades_average(my_list):     sum_of_grades = sum(my_list)     average = sum_of_grades / len(my_list)     return average 

second, recommend looking numpy library, has these methods built-in. numpy.mean() , numpy.std() cover both these cases.

if you're interested in writing code first, that's totally fine too. specific error, believe @gnibbler above nailed it. if want loop using index, can restructure line in grades_variance be:

for in range(0, len(my_list)): 

as lattyware noted, looping index not particularly "pythonic"; way you're doing superior. reference.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -