Introducción
En Python, podemos usar la función map() para aplicar una función a cada elemento de una lista y devolver una nueva lista con los elementos modificados. También podemos usar la función sum() para sumar todos los elementos de una lista. En este desafío, combinaremos estas dos funciones para calcular el promedio de una lista, después de mapear cada elemento a un valor usando una función proporcionada.
Promedio de una lista mapeada
Escribe una función llamada average_by(lst, fn = lambda x: x) que tome una lista lst y una función fn como argumentos. La función fn se debe usar para mapear cada elemento de la lista a un valor. Luego, la función debe calcular el promedio de los valores mapeados y devolverlo.
Si no se proporciona el argumento fn, la función debe usar la función identidad predeterminada, que simplemente devuelve el elemento mismo.
Tu función debe cumplir con los siguientes requisitos:
- Usar
map()para mapear cada elemento al valor devuelto porfn. - Usar
sum()para sumar todos los valores mapeados, dividir porlen(lst). - Omitir el último argumento,
fn, para usar la función identidad predeterminada.
Firma de la función: 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
Resumen
En este desafío, aprendimos cómo usar las funciones map() y sum() para calcular el promedio de una lista, después de mapear cada elemento a un valor usando una función proporcionada. También aprendimos cómo usar argumentos predeterminados en las funciones de Python.