python中的修剪平均值计算

2024-09-22 16:25:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 方法函数代码alpha列表lenreturnif
1条回答
网友
1楼 · 发布于 2024-09-22 16:25:09

如何添加一个简单的if条件来检查a是否为0

x=[1,20,10,85]

def tmean(x, alpha):
    if alpha <0:
        raise ValueError("Alpha needs to be between 0 and 1")
    a = int(alpha * len(x))
    if a == 0:
        return sum(x)/float(len(x)) # return mean
    s = sorted(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)

希望这有帮助

相关问题 更多 >