1
resposta

[Dúvida] Está dando um resultado diferente do que foi explicado

Boa tarde

No meu exercício só está saindo o último resultado da lista. Eu usei uns números diferentes do vídeo mas o resultado deveria ser semelhante, e não foi.

Meu código:

[(idade) for idade in idades if idade > 21]
[39, 30, 27, 28, 45, 55]

def proximo_ano(idade):
  return idade+1

  [proximo_ano(idade) for idade in idades if idade > 28]

  55

o correto seria aparecer o 45 e o 55. Mas isso não ocorre.

Obrigado

1 resposta

Olá Ricardo, tudo bem com você?

Realizando algumas simulações, não consegui obter o mesmo resultado mencionado, onde apenas o valor 55 foi impresso. O comportamento apresentado pode estar relacionado com a declaração da variável idades em alguma célula anterior ao código que contém a list comprehension, fazendo com que o código apresente um resultado não esperado.

Peço que realize uma nova tentativa de execução do código em uma única célula do google Colab, assim teremos a declaração da variável idades e seu uso imediato, sem que possa ocorrer interferências, basta seguir os passos abaixo e verifique o resultado apresentado.

  • Abra o seu projeto no Google Colab

  • Com o projeto aberto, crie uma célula de código. Pressione + logo após pressione

  • Na nova célula criada, cole o código abaixo e substitua os valores presentes na lista idades para os valores que você usou inicialmente.

      idades = [12, 15, 11, 39, 30, 27, 28, 45, 55]
    
      def proximo_ano(idade):
        return idade + 1
    
      [proximo_ano(idade) for idade in idades if idade > 28]
    
  • Execute o código. Basta pressionar +

  • Verifique o resultado

Gostaria de aproveitar a oportunidade e deixar uma explicação sobre a segunda list comprehension ([proximo_ano(idade) for idade in idades if idade > 28]). Ela não apresentará como resultado os valores 45 e 55, nela os valores presentes na lista idades que são maiores que 28 serão enviados como parâmetro para a função proximo_ano(idade) e acrescentado 1 ao seu valor e será retornado para a nova lista. Para os testes, utilizei a seguinte lista: idades = [12, 15, 11, 39, 30, 27, 28, 45, 55]. Assim, executando o código, teremos o seguinte resultado.

idades = [12, 15, 11, 39, 30, 27, 28, 45, 55]

def proximo_ano(idade):
  return idade + 1

[proximo_ano(idade) for idade in idades if idade > 28]

Resultado

[40, 31, 46, 56]

Peço que teste os pontos propostos acima, e verifique se obteve êxito.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Espero ter ajudado, em caso de dúvidas estou à disposição.

Abraços e bons estudos!

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