John
John

Reputation: 11

Python: Use a loop to calculate the standard deviation of the values in a list

I'm trying to calculate standard deviation based on values from a list, but I am receiving errors:

def mean(list):
    return sum(list)/len(list)

std_deviation = (sum([(list - mean(list)) ** 2 for number in list]) / (len(list) - 1)**(1/2)

print(std_deviation)

Upvotes: 1

Views: 1956

Answers (2)

Eyssant
Eyssant

Reputation: 11

MyList = [1,2,3,4,5]
mean = sum(MyList)/len(MyList)
stddev = sum([((i - mean)**2/len(MyList))**0.5 for i in MyList])
print(stddev)

Python - List Comprehension

Upvotes: 0

L3viathan
L3viathan

Reputation: 27283

Your parantheses are set wrong, and instead of list - mean(list), you'll want number - mean(list)

Fixed version (without the name list, because it is a builtin):

def mean(values):
    return sum(values)/len(values)

my_list = [1,2,2,3,4,5,5,8]

std_deviation = (1/(len(my_list) - 1) * sum((number - mean(my_list))**2 for number in my_list))**.5
print(std_deviation)  # prints 2.2519832529192065

Upvotes: 1

Related Questions