Olá, Marcelo. Como vai?
Excelente código! Sua solução para filtrar números pares em Python ficou extremamente elegante e utiliza conceitos avançados de programação funcional que são muito valorizados no mercado, como as funções map(), filter() e expressões lambda.
O fluxo de transformação que você criou na sua pipeline de dados está logicamente perfeito: você recebe o texto, quebra em partes, converte para inteiros, aplica o filtro matemático e, por fim, reconverte para texto para exibir formatado na tela.
Para agregar ainda mais valor ao seu projeto, vamos analisar de perto como a combinação de filter() e lambda funciona na memória do Python e discutir uma alternativa de escrita que é considerada uma das maiores boas práticas da linguagem.
O Funcionamento da Pipeline de Dados
O comportamento do seu código pode ser visualizado como uma esteira de processamento, onde os dados entram brutos e saem refinados:
split(): Transforma a string "1 2 3 4" na lista de strings ['1', '2', '3', '4'].map(int, ...): Transforma os textos em números internos 1, 2, 3, 4.filter(lambda x: x % 2 == 0, ...): Avalia cada número através do operador de resto da divisão %. Se o resto da divisão por 2 for igual a zero, a condição é True e o número passa pelo filtro; se for diferente, ele é descartado.
Sugestão de Boa Prática: List Comprehensions
Embora o uso de map() e filter() seja excelente e muito comum em linguagens como JavaScript ou lógicas funcionais pura, a comunidade Python prefere, na grande maioria das vezes, o uso de List Comprehensions (Compreensão de Listas).
A List Comprehension faz exatamente a mesma coisa que o map e o filter juntos, mas possui uma sintaxe muito mais legível e costuma ser até mais rápida nativamente no Python. Veja como você poderia reescrever a linha do filtro de forma super "pythônica":
# Converte e filtra em uma única linha visualmente limpa
lista_pares = [int(x) for x in lista_numeros.split() if int(x) % 2 == 0]
Deixando o código completo e robusto
Se combinarmos a sua lógica com um tratamento de erros básico (caso o usuário digite uma letra por engano no meio dos números), seu script fica totalmente protegido e pronto para produção:
entrada = input('Digite os números separados por espaço: ')
try:
# Usando list comprehension com validação direta
lista_pares = [int(x) for x in entrada.split() if int(x) % 2 == 0]
# Exibindo o resultado formatado
print('Números pares:', ' '.join(map(str, lista_pares)))
except ValueError:
print('Erro: Certifique-se de digitar apenas números inteiros separados por espaço.')
Seu domínio sobre funções de ordem superior (higher-order functions) no Python está excelente, Marcelo. Continue compartilhando suas soluções no fórum!
Espero que possa ter lhe ajudado!