30秒学会 Python 片段 · 2022年7月1日

30秒学会 Python 片段 – Mapped list average

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 by fn.
  • Use sum() to sum all of the mapped values, divide by len(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

翻译自:https://www.30secondsofcode.org/python/s/average-by