Files
30-seconds-of-code/snippets/python/s/average-by.md
2023-05-07 16:07:29 +03:00

25 lines
639 B
Markdown

---
title: Mapped list average
type: snippet
language: python
tags: [math,list]
cover: flower-vase
dateModified: 2020-11-02T19:27:07+02:00
---
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.
```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
```