如何使用for循环来计算数字列表python的平均值?

时间:2018-04-24 09:52:58

标签: python python-2.7 for-loop mean

尝试使用for循环来计算列表的平均值,因为我想练习。

此代码返回4,5和1的测试用例。有人可以告诉我,我做错了吗?

def list_mean(p):
total = 0
i = 0
if i < len(p):
    for t in p:
        total = total + p[i]
        i += 1
    return i

mean = i / len(p)
return mean


print list_mean([1,2,3,4])
>>> 2.5

print list_mean([1,3,4,5,2])
>>> 3.0

print list_mean([2])
>>> 2.0

2 个答案:

答案 0 :(得分:4)

首先,我猜你做的return i是无意的。

其次,您执行i / len(p)而不是total / len(p)

我们可以更进一步,摆脱不必要的部分。如果for等于零,则会跳过len(p)循环,我们可以删除if i < len(p)语句。此外,我们不需要i变量,因为Python for循环逐个产生每个元素。因此,您可以使用total = total + t代替total = total + p[i]。可能最后一点是total = total + t在这种情况下相当于total += t

如果你解决了我提到的所有问题,你应该得到类似的东西:

def list_mean(p):
     total = 0.0
     for t in p:
         total += t
     mean = total / len(p)
     return mean

但是如果你想计算均值,你可以使用它:

mean = sum(p) / len(p)

请注意,对于Python 2,您需要将类型显式转换为float

mean = float(sum(p)) / len(p)

答案 1 :(得分:0)

这是学校的任务吗?用于循环是强制性的吗?

a = [1,2,3,4]
mean_val = sum(a)/len(a)
print mean_val

given = [1,3,4,5,2]
def mean_val(a):
    b = sum(a)/len(a)
    return b
print mean_val(given)