Python中的一行标准差函数

Python中的一行标准差函数,python,lambda,Python,Lambda,我要在一行上写一个标准偏差函数。我只能用数学,兰姆达斯,伦 正如我的任务所说,估计结果是288.37475617675 非单行代码给我的答案略有不同,因此是错误的 import math aList = [7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67, 72, 77, 82, 87, 92, 97, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 1

我要在一行上写一个标准偏差函数。我只能用数学,兰姆达斯,伦

正如我的任务所说,估计结果是288.37475617675

非单行代码给我的答案略有不同,因此是错误的

import math

aList = [7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67, 72, 77, 82, 87, 92, 97, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 260, 265, 270, 275, 280, 285, 290, 295, 300, 305, 310, 315, 320, 325, 330, 335, 340, 345, 350, 355, 360, 365, 370, 375, 380, 385, 390, 395, 400, 405, 410, 415, 420, 425, 430, 435, 440, 445, 450, 455, 460, 465, 470, 475, 480, 485, 490, 495, 500, 505, 510, 515, 520, 525, 530, 535, 540, 545, 550, 555, 560, 565, 570, 575, 580, 585, 590, 595, 600, 605, 610, 615, 620, 625, 630, 635, 640, 645, 650, 655, 660, 665, 670, 675, 680, 685, 690, 695, 700, 705, 710, 715, 720, 725, 730, 735, 740, 745, 750, 755, 760, 765, 770, 775, 780, 785, 790, 795, 800, 805, 810, 815, 820, 825, 830, 835, 840, 845, 850, 855, 860, 865, 870, 875, 880, 885, 890, 895, 900, 905, 910, 915, 920, 925, 930, 935, 940, 945, 950, 955, 960, 965, 970, 975, 980, 985, 990, 995, 1000]
mean = sum(aList)/(len(aList)-1)
def ok(x):
  return (x - mean)**2
print(math.sqrt(sum(list(map(ok, aList)))/(len(aList))))
#or
mean = sum(aList)/len(aList)
def ok(x):
  return (x - mean)**2
print(math.sqrt(sum(map(ok, aList))/(len(aList))))
一行代码

math.sqrt(sum(list(map(lambda x: x - sum(aList)/len(aList)**2, aList)))/len(aList - 1) 
反正给我数学领域的错误

我的函数有什么问题,如何得到估计结果?
为什么会出现此域错误?如何修复它?

括号和计算长度似乎没有什么错误


math.sqrt(sum(list)(map(lambda x:(x-sum(aList)/len(aList))**2,aList))/len(aList))
效果很好。

欢迎来到SO!这段代码很难读。把它分解成中间变量并避免聪明有什么错
ok
是一个非常糟糕的函数名。。。基本上假装
map
不存在可能会大大改进代码。如果您将一行中的每个子语句重新分配到它自己的变量中,解释器会给出错误的来源。@ggorlen您好,谢谢!我的作业要求所有东西都在一条线上。对不起,ok,我的意思是“可以一起工作”。你说假装地图不存在是什么意思?@BłażejMichalik一行不行(bit给出了错误的答案),而且没有令人遗憾的数学错误
map
会导致(在我看来)非常不可读的代码,所以我建议在这里不要使用它。如果你必须在一行中完成(学校现在在教代码高尔夫吗?)试着在地图上列出理解,10次中有9次。在现实生活中,你可能会使用。谢谢!你知道估计的结果吗?我的函数和你的答案都给出了288.37413875033945,而它应该是288.37475617675
numpy.std
也给出了288.3741387503394