Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

atividade, questao 3

A função pra coleta de números múltiplos de 3, eu queria fazer de um jeito que quando eu fosse usar em outra lista, me retornasse apenas os valores da lista em uso e esquecesse os valores coletados antes, mas quando uso a função numa outra lista, me retorna os valores múltiplos de 3 da lista em uso, e das listas usadas anteriormente.
E eu entendi que é porque ao usar o .append a lista está armazenando os valores e os mantendo... Mas tem alguma ideia de como fazer do modo que eu mencionei no começo?print da questao

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Olá, tudo bem?

O comportamento que você descreveu realmente acontece porque a lista mult_3 está declarada fora da função, o que faz com que ela continue existindo na memória entre uma chamada e outra. Para resolver isso, você pode definir a lista dentro da função, assim ela será recriada toda vez que a função for chamada. Veja como você pode fazer isso:

def multiplo_3(lista: list) -> list:
    mult_3 = []  # Defina a lista dentro da função
    for i in range(len(lista)):
        if lista[i] % 3 == 0:
            mult_3.append(lista[i])
    return mult_3

Com essa alteração, cada chamada da função multiplo_3 irá retornar apenas os múltiplos de 3 da lista passada como argumento, sem acumular valores de chamadas anteriores.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!