Finding the average of a list

前端 未结 23 1612
抹茶落季
抹茶落季 2020-11-22 11:07

I have to find the average of a list in Python. This is my code so far

l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
print reduce(lambda x, y: x + y, l)
23条回答
  •  忘了有多久
    2020-11-22 11:45

    In order to use reduce for taking a running average, you'll need to track the total but also the total number of elements seen so far. since that's not a trivial element in the list, you'll also have to pass reduce an extra argument to fold into.

    >>> l = [15, 18, 2, 36, 12, 78, 5, 6, 9]
    >>> running_average = reduce(lambda aggr, elem: (aggr[0] + elem, aggr[1]+1), l, (0.0,0))
    >>> running_average[0]
    (181.0, 9)
    >>> running_average[0]/running_average[1]
    20.111111111111111
    

提交回复
热议问题