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.
Alura Scuba TeamTime Alura | Apoio Educacional no Fórum
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!