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
Post a Comment