1
resposta

Uso de lambdas em listas direto

No vídeo é afirmado que não é possível utilizar lambdas em listas direto, mas no meu aqui acho que funcionou, ou entendi errado?

# Notas do(a) estudante
notas = [6.0, 7.0, 9.0, 5.5, 8.0]
qualitativo = 0.5

media = lambda x, qualitativo: (sum(x) + len(x)*qualitativo) / len(x)
print(media(notas, qualitativo))
1 resposta

Olá, Ybraz, tudo bem?

Na verdade, na aula o instrutor tenta explicar é que você não pode aplicar uma função lambda diretamente a uma lista inteira de uma vez, mas sim a cada elemento individualmente.

Na sua função, lambda media está recebendo a lista notas e o valor qualitativo como parâmetros. Dentro da função, você está somando todos os elementos da lista notas e adicionando o produto do comprimento da lista pelo valor qualitativo, depois dividindo pelo comprimento da lista para obter a média. Isso funciona porque sum(x) e len(x) são operações válidas para listas.

No entanto, se você tentar aplicar uma função lambda diretamente a uma lista para modificar cada elemento, como adicionar um valor qualitativo a cada nota, você precisará usar a função map.:

notas = [6.0, 7.0, 9.0, 5.5, 8.0]
qualitativo = 0.5

# Usando map para aplicar a função lambda a cada elemento da lista
notas_atualizadas = list(map(lambda x: x + qualitativo, notas))
print(notas_atualizadas)

Nesse caso, map aplica a função lambda a cada elemento da lista notas, adicionando o valor de qualitativo a cada um deles. O resultado é uma nova lista com os valores atualizados.

Espero ter esclarecido.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!