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

List Comprehesions com com lista de None no final

Boa tarde. Quando faço o list comprehension e utilizo um print() dentro, ela me retorna a lista pretendida mais uma lista com vários None's. Alguém sabe o motivo?

Entrada:

Acessorios = ['Ar condicionado', 'Bancos de couro', 'Piloto automático', 'Sensor crepuscular', 'Sensor de chuva', 'Sensor de estacionamento', 'Travas elétricas', 'Rodas de liga']

[print(item) for item in Acessorios]

Saída:

Ar condicionado
Bancos de couro
Piloto automático
Sensor crepuscular
Sensor de chuva
Sensor de estacionamento
Travas elétricas
Rodas de liga
[None, None, None, None, None, None, None, None]
3 respostas
solução!

Oi José,

a técnica de list comprehension é utilizada para criar listas utilizando laços for. A função print() do Python é utilizada para imprimir informações na tela e este resultado não pode ser atribuído a uma variável ou elemento de uma lista.

Para exemplificar, tente executar os códigos abaixo em um notebook do Colab:

teste = print('José')

José

O código acima cria a variável teste e atribui a ela a função print() com o argumento 'José'. Note que o código imprime 'José'. Tente agora imprimir a variável teste que criamos acima.

print(teste)

None

O resultado é None. É exatamente isso que está acontecendo com o seu código. Quando você utiliza o print(item) o Python imprime os valores e atribui None a cada elemento da lista resultante.

Quando o seu objetivo for apenas imprimir os resultados, utilize o laço for como mostrado no código abaixo:

for item in Acessorios:
    print(item)

Espero ter ajudado.

Entendi. Muito obrigado!

Alias, estou adorando as suas aulas. A sua didática é excelente!

Valeu José! Bons estudo e se precisar é só chamar

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software