Entendendo map, filter, reduce e lambda
- 2 minsAntes de falar sobre map, filter e reduce, precisamos entender sobre função de ordem superior.
Função de ordem superior
Função de ordem superior é uma função que:
- recebe uma função como argumento;
- ou devolve uma função como resultado.
Map, filter e reduce são as funções de ordem superior mais conhecidas.
Map

A função map recebe uma função (dobrar_numero) e um iterável (range(4)), cada item desse iterável (números de 0 à 3) é aplicada na função, o que faz o map retornar um objeto map e convertemos esse resultado em uma lista.
Filter

A função filter recebe uma função (maior_que_zero) e um iterável (valores), cada item do iterável é aplicada a condição da função que faz o “filtro”, retornando também um objeto filter e convertemos o resultado em uma lista
Reduce

A ideia de usar o reduce é aplicar uma função (somar) a cada item de um iterável (range(5), ou seja, números de 0 à 4) a fim de ser “reduzida” a um único valor.
É possível passar um terceiro parâmetro opcional para inicializar o valor da função:

Lambda
Função lambda também é conhecida como função anônima, e é comum vermos a função lambda ser usada junto com map, filter ou reduce afim de encurtar as funções criadas pelo comando def
Map e lambda

Filter e lambda

Reduce e lambda

Deixando map, filter e reduce mais legíveis
Para tornar o código mais legível é possível substituir as funções map e filter por list comprehension e a função reduce por sum(), all() e any().
Como já diz no Zen of Python
Readability counts
List Comprehension
map vs list comprehension


filter vs list comprehension


reduce vs sum, all, any


A função all() recebe um iterável e se todos os elementos forem verdadeiros a função retorna True

A função any() recebe um iterável e se algum elemento for verdadeiro a função retorna True 
Espero que esse post tenha ficado simples e que você tenha entendido sobre map, filter, reduce e lambda!
Obrigada por ter lido <3