如何在Python中找到列表的平均值?
[1, 2, 3, 4] ⟶ 2.5
如何在Python中找到列表的平均值?
[1, 2, 3, 4] ⟶ 2.5
当前回答
你可以为平均值,使用率做一个函数:
average(21,343,2983) # You can pass as many arguments as you want.
代码如下:
def average(*args):
total = 0
for num in args:
total+=num
return total/len(args)
*args允许任意数量的答案。
其他回答
我想补充另一种方法
import itertools,operator
list(itertools.accumulate(l,operator.add)).pop(-1) / len(l)
在列表中求平均值 通过使用以下PYTHON代码:
l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print(sum(l)//len(l))
试着简单一点。
Sum (l) / float(len(l))是正确答案,但为了完整起见,你可以用一个reduce来计算平均值:
>>> reduce(lambda x, y: x + y / float(len(l)), l, 0)
20.111111111111114
注意,这可能会导致轻微的舍入误差:
>>> sum(l) / float(len(l))
20.111111111111111
numbers = [0,1,2,3]
numbers[0] = input("Please enter a number")
numbers[1] = input("Please enter a second number")
numbers[2] = input("Please enter a third number")
numbers[3] = input("Please enter a fourth number")
print (numbers)
print ("Finding the Avarage")
avarage = int(numbers[0]) + int(numbers[1]) + int(numbers[2]) + int(numbers [3]) / 4
print (avarage)
结合上面的几个答案,我提出了以下与reduce一起工作的方法,并且不假设你在reduce函数中有L可用:
from operator import truediv
L = [15, 18, 2, 36, 12, 78, 5, 6, 9]
def sum_and_count(x, y):
try:
return (x[0] + y, x[1] + 1)
except TypeError:
return (x + y, 2)
truediv(*reduce(sum_and_count, L))
# prints
20.11111111111111