🎯 Map e Filter em Python
Em poucas palavras
Definição técnica ou simplificada do conceito.
📝 Notas e Desenvolvimento
🔗 Conexões e Contexto
- Atlas: MdC - Programação
- Notas Relacionadas:
📚 Referências e Fontes
Links Externos
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 retornaTrueouFalsepara cada item. Apenas os itens para os quais a função retornaTrueserã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
mapefilter:
valores = range(10)
quadrados_filtrados = list(filter(lambda x: x > 30, map(lambda x: x**2, valores)))
### Resultado: [36, 49, 64, 81]
- Usando compreensão de lista:
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.