首页 > 解决方案 > Python:使用循环计算列表中值的标准差

问题描述

我正在尝试根据列表中的值计算标准偏差,但我收到错误:

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)

标签: pythonpython-3.x

解决方案


你的括号设置错误,而不是list - mean(list), 你会想要number - mean(list)

固定版本(没有名称list,因为它是内置的):

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

推荐阅读