🎯 Map e Filter em Python

Em poucas palavras

Definição técnica ou simplificada do conceito.


📝 Notas e Desenvolvimento


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas

📂 Outros Conteúdos Preservados

map()

A função map() aplica uma função específica a cada item em um iterável (como uma lista, tupla, etc.) e retorna um iterador com os resultados.

Sintaxe: map(funcao, iteravel)

  • funcao: A função a ser aplicada a cada item. Pode ser uma função nomeada ou uma função lambda.
  • iteravel: A coleção de elementos sobre a qual a função será aplicada.

Exemplo: Elevar ao quadrado todos os números em uma lista.

numeros = [1, 2, 3, 4]
quadrados = list(map(lambda x: x**2, numeros))
 
### Resultado: [1, 4, 9, 16]
 

filter()

A função filter() constrói um iterador a partir dos elementos de um iterável para os quais uma função de teste retorna True.

Sintaxe: filter(funcao, iteravel)

  • funcao: Uma função que retorna True ou False para cada item. Apenas os itens para os quais a função retorna True serão incluídos no resultado. Pode ser uma função nomeada ou uma função lambda.
  • iteravel: A coleção de elementos a serem filtrados.

Exemplo: Filtrar números maiores que 2 de uma lista.

numeros = [1, 2, 3, 4]
maiores_que_dois = list(filter(lambda x: x > 2, numeros))
 
### Resultado: [3, 4]
 

Comparação com Compreensão de listas em Python

map e filter podem ser combinados para realizar operações que também são possíveis com compreensões de lista. A escolha entre eles muitas vezes depende da preferência de estilo e da complexidade da operação.

Exemplo combinado: Obter os quadrados dos números de 0 a 9 que são maiores que 30.

  • Usando map e filter:
valores = range(10)
quadrados_filtrados = list(filter(lambda x: x > 30, map(lambda x: x**2, valores)))
 
### Resultado: [36, 49, 64, 81]
 
valores = range(10)
quadrados_filtrados = [x**2 for x in valores if x**2 > 30]
 
### Resultado: [36, 49, 64, 81]
 

É importante notar que, para a maioria dos cenários, o uso de map e filter não aumenta a velocidade de execução de um determinado script em comparação com o uso de compreensões de lista. As compreensões de lista são frequentemente consideradas mais legíveis e idiomáticas para muitas operações em Python.