如何让我的代码删除最小的整数?

时间:2016-11-16 22:02:46

标签: python

def calc_average(scores)
  x = scores[1:]
  return (sum(x) / float(len(x)))

这里有一些代码可以找到数字列表的平均值,但不计算最低值。我不确定如何找到列表中的最小数字,从中删除它,然后找到它的平均值。有人可以帮忙吗?谢谢! (最低的数字并不总是列表中的第一个数字,这是我犯的错误......)

4 个答案:

答案 0 :(得分:3)

您不必从列表中删除该项目;你可以把它从计算中删除。

def calc_average(scores)
    return (sum(scores) - min(scores)) / float(len(x) - 1)

答案 1 :(得分:2)

我会对列表进行排序,然后退出第一个元素。

a = [ 3,2,6,3,8,7,2,1]
a.sort()
a = a[1:]
print a
print float(sum(a))/len(a)

这样做的好处,即使只是删除单个最低值的更多工作是它是可销售的。假设你想删除最低的2或3个值,一旦列表排序就很容易了。

答案 2 :(得分:1)

您可以使用min()函数查找列表的最小值,然后可以使用list.remove()函数删除该值。

选中此项以获取参考https://docs.python.org/2/library/functions.html#minhttps://docs.python.org/3.6/library/functions.html#min

答案 3 :(得分:0)

您可以使用

return float((sum(scores) - min(scores))) / (len(scores) - 1)

找到所有分数的总和,然后除去最小分数,然后除去分数后的分数。

请注意,此处没有错误检查,因此对于长度为零或一的列表,这将无法正常工作。那个float()用于确保Python 2.x中的浮点除法。这使用了Python函数的全速,但它确实循环了两次得分。手动编码的函数在循环中只会更快一次,但在执行多个命令时会再次减速。