python中的修剪平均值计算
我有一个函数来计算修剪后的平均值。为此,我使用一个新创建的列表“trimmed_list”。 但是如果a=0,则修剪列表将为空,因为s[a:-a]在这种情况下不起作用。 有没有一种方法可以在没有任何导入的情况下修复代码 例如: 使用此代码tmean(x,0.2)=无而不是29python中的修剪平均值计算,python,list,statistics,mean,Python,List,Statistics,Mean,我有一个函数来计算修剪后的平均值。为此,我使用一个新创建的列表“trimmed_list”。 但是如果a=0,则修剪列表将为空,因为s[a:-a]在这种情况下不起作用。 有没有一种方法可以在没有任何导入的情况下修复代码 例如: 使用此代码tmean(x,0.2)=无而不是29 x=[1,20,10,85] def tmean(x, alpha): if alpha <0: raise ValueError("Alpha needs to be between 0 and 1"
x=[1,20,10,85]
def tmean(x, alpha):
if alpha <0:
raise ValueError("Alpha needs to be between 0 and 1")
s = sorted(x)
a = int(alpha * len(x))
trimmed_list = s[a:-a]
if len(trimmed_list) == 0:
return "No calculation possible"
trimmed_ave = sum(trimmed_list)/len(trimmed_list)
return float(trimmed_ave)
x=[1,20,10,85]
def tmean(x,α):
如果α添加一个简单的if
条件来检查a
是否为0
x=[1,20,10,85]
def tmean(x,α):
如果您试图通过范围[1,len(x)]计算选定元素的平均值?如何得到结果29
?在这种情况下,“修剪列表”=正常列表“x”,因为a=0,所以116/4=29,但我的代码修剪列表=[],因为-a不起作用,但需要从列表的切片计算平均值。Alpha=0表示空列表,Alpha=1表示列表的所有元素?你能再举几个例子来说明修剪应该如何工作吗?或者某些输入的预期结果是什么?why.alpha显示您修剪列表的百分比,例如,0.2表示您希望从已排序列表的左侧和右侧站点中剪切20%。一个列表中只有4个元素,20%意味着你什么都不删减,所以你建立了正常的平均值。alpha=0.3时,修剪后的列表为[10,20],修剪后的平均值为15(30/2)