From 3f0cd1dc5a3739d917fc296709bc72d21de89c25 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Tue, 20 Aug 2019 11:55:10 +0300 Subject: [PATCH] Add average_by snippet --- snippets/average_by.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 snippets/average_by.md diff --git a/snippets/average_by.md b/snippets/average_by.md new file mode 100644 index 000000000..f88fd9667 --- /dev/null +++ b/snippets/average_by.md @@ -0,0 +1,18 @@ +--- +title: average_by +tags: math,list,function,intermediate +--- + +Returns 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)`. + +```py +def average_by(lst, fn=lambda x: x): + return sum(map(fn, lst), 0.0) / len(lst) +``` + +```py +average_by([{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }], lambda x: x['n']) # 5.0 +```