Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resolução de Atividades - 09 Faça como eu fiz: filtrando números pares

def verificador_de_paridade (numero):

    return numero % 2 == 0

lista_numeros_usuario = input ("Digite uma sequência de números, separando por espaços: ").split()
lista_convertida = list (map (int, lista_numeros_usuario))

# Função Build-In Map() => Aplica a função a todos os elementos de um iterável, como listas ou tuplas

# Função Build-In Filter()

endereco_dos_numeros_filtrados = filter (verificador_de_paridade, lista_convertida)
lista_filtrada = list (endereco_dos_numeros_filtrados) # Se não retorna "Números pares: <filter object at 0x0000024BA6834550>"

# Nota: ele vai retornar o endereço da memória da lista, não a lista em si. Tu precisa colocar em uma variavel
print (f"\nNúmeros pares: {lista_filtrada}")

Dúvida: Qual é a diferença entre o map() e o filter(), porque pelo que entendi, os dois vão aplicar a função determinada em uma iterável (como uma lista)?

2 respostas
solução!

Oi, Victor, tudo bem?

Parabéns pela resolução ta tudo certo.

Embora ambos apliquem uma função a um iterável, a grande diferença está no propósito e no resultado que eles produzem:

map(): Ele pega cada item da lista original, aplica a função e devolve o resultado dessa operação. A lista final terá o mesmo tamanho da lista original, mas com os valores modificados. No seu código, o map() pegou uma lista de textos (ex: ['2', '3']) e transformou em uma lista de inteiros ([2, 3]).

filter() Ele aplica uma função que avalia uma condição e retorna um valor booleano (True ou False). Se o resultado for True, o item original é mantido; se for False, ele é descartado. A lista final pode ser menor que a original, e os valores dos itens não são alterados. No seu código, o filter() pegou a lista [2, 3] e manteve apenas o 2 (porque a sua função validou que ele era par).

Resumindo: use o map() quando quiser modificar/transformar todos os itens, e o filter() quando quiser selecionar/separar apenas alguns itens!

Para saber mais:

Sugestão de conteúdo:

DOCUMENTAÇÃO
Map, filter e reduce
Continue com essa curiosidade investigativa, pois é isso que te fará dominar a linguagem. Qualquer dúvida, é só chamar\!

Bons estudos!

Sucesso

Imagem da comunidade

Ahhh, faz sentido. Realmente são diferentes no propósito. Muito obrigado pela explicação S2