Olá, Aristóteles. Como vai?
Parabéns por mais uma excelente resolução de desafio! O seu código está sensacional e demonstra que você está avançando a passos largos no domínio do Python funcional.
A combinação da função nativa filter() com uma expressão lambda foi o grande destaque aqui. No mercado de programação, essa abordagem é muito valorizada por ser extremamente enxuta e performática. Vamos analisar as ótimas escolhas que você fez no seu script:
- A função
filter() e a expressão lambda: A função filter(função, sequência) aplica o teste lógico a cada elemento da lista. O uso da lambda x: x % 2 == 0 (que calcula o resto da divisão por 2) é a forma perfeita de criar uma função anônima rápida e direta para esse filtro, retornando apenas os elementos que resultam em True. - Saída limpa com
join() e map(): Na hora de exibir o resultado, em vez de apenas imprimir a lista crua com os colchetes, você usou map(str, pares) para converter os números de volta para texto e os juntou com o " ".join(). Isso gerou uma saída perfeitamente formatada na tela, idêntica ao padrão de sistemas profissionais.
Como você está explorando os recursos de programação funcional do Python, uma excelente sugestão de boa prática para você comparar e expandir seu repertório é reescrever essa mesma lógica utilizando List Comprehension com uma cláusula condicional if.
Em Python, as compreensões de lista costumam ser a primeira escolha da comunidade por serem consideradas mais legíveis por seres humanos do que a combinação de filter com lambda. Veja como a sua função ficaria elegante:
def filtrar_pares(lista_numeros):
# Lendo de forma linear: guarde o número para cada número na lista SE o número for par
return [num for num in lista_numeros if num % 2 == 0]
Ambas as formas chegam exatamente ao mesmo resultado e possuem excelente desempenho. Conhecer as duas te dá um repertório fantástico para decidir qual usar dependendo do padrão de código da equipe onde você for trabalhar.
Continue mantendo essa excelente consistência e qualidade na escrita dos seus códigos!
Espero que possa ter lhe ajudado!