Introdução
Em Python, podemos usar a função map() para aplicar uma função a cada elemento de uma lista e retornar uma nova lista com os elementos modificados. Também podemos usar a função sum() para somar todos os elementos de uma lista. Neste desafio, combinaremos essas duas funções para calcular a média de uma lista, após mapear cada elemento para um valor usando uma função fornecida.
Média de Lista Mapeada
Escreva uma função chamada average_by(lst, fn = lambda x: x) que recebe uma lista lst e uma função fn como argumentos. A função fn deve ser usada para mapear cada elemento da lista para um valor. A função deve então calcular a média dos valores mapeados e retorná-la.
Se o argumento fn não for fornecido, a função deve usar a função identidade padrão, que simplesmente retorna o próprio elemento.
Sua função deve atender aos seguintes requisitos:
- Use
map()para mapear cada elemento para o valor retornado porfn. - Use
sum()para somar todos os valores mapeados, dividindo porlen(lst). - Omita o último argumento,
fn, para usar a função identidade padrão.
Assinatura da função: 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
Resumo
Neste desafio, aprendemos como usar as funções map() e sum() para calcular a média de uma lista, após mapear cada elemento para um valor usando uma função fornecida. Também aprendemos como usar argumentos padrão em funções Python.