python中的修剪平均值计算

python中的修剪平均值计算,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"

我有一个函数来计算修剪后的平均值。为此,我使用一个新创建的列表“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")
  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)