Calculates the average of a list, after mapping each element to a value using the provided function.
- Use
map()
to map each element to the value returned byfn
. - Use
sum()
to sum all of the mapped values, divide bylen(lst)
. - Omit the last argument,
fn
, to use the default identity function.
代码实现
def average_by(lst, fn = lambda x: x):
return sum(map(fn, lst), 0.0) / len(lst)
使用样例
average_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda x: x['n'])
# 5.0