Введение
В Python мы можем использовать функцию map() для применения функции к каждому элементу списка и возврата нового списка с измененными элементами. Мы также можем использовать функцию sum() для сложения всех элементов списка. В этом испытании мы объединим эти две функции для вычисления среднего значения списка, после того, как каждый элемент будет отображаться на значение с использованием предоставленной функции.
Среднее значение отображенного списка
Напишите функцию под названием average_by(lst, fn = lambda x: x), которая принимает список lst и функцию fn в качестве аргументов. Функция fn должна использоваться для отображения каждого элемента списка на значение. Затем функция должна вычислить среднее значение отображенных значений и вернуть его.
Если аргумент fn не указан, функция должна использовать функцию тождественности по умолчанию, которая просто возвращает сам элемент.
Ваша функция должна соответствовать следующим требованиям:
- Использовать
map()для отображения каждого элемента на значение, возвращаемое функциейfn. - Использовать
sum()для суммирования всех отображенных значений, разделить наlen(lst). - Пропустить последний аргумент,
fn, чтобы использовать функцию тождественности по умолчанию.
Подпись функции: def average_by(lst, fn = lambda x: x) -> float:
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
Резюме
В этом испытании мы узнали, как использовать функции map() и sum() для вычисления среднего значения списка, после того, как каждый элемент был отображен на значение с использованием предоставленной функции. Мы также узнали, как использовать аргументы по умолчанию в функциях Python.