Я пытаюсь сделать функцию, которая выводит дисперсию списка определенных номеров:Python: Дисперсия списка определенных чисел
grades = [100, 100, 90, 40, 80, 100, 85, 70, 90, 65, 90, 85, 50.5]
До сих пор я пытался перейти на делать эти три функции:
def grades_sum(my_list):
total = 0
for 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
for i in my_list:
variance += (average - my_list[i]) ** 2
return variance/len(my_list)
Когда я пытаюсь выполнить код, однако, он дает мне следующую ошибку в следующей строке:
Line: variance += (average - my_list[i]) ** 2
Error: list index out of range
Извините, если мои текущие знания Python ограничены, но я все еще участвую - так что, пожалуйста, если вы хотите помочь решить эту проблему, постарайтесь не предлагать чрезвычайно сложные способы решения этой проблемы, большое вам спасибо.
Так же, как примечание, [ '(сумма)'] (http://docs.python.org/3.3/library/functions.html#sum) является встроенной функцией, которая уже существует - нет нужно изобретать велосипед. 'sum (grades)' будет делать. –
Это правильно. – GiamPy