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

List comprehension

Boa noite, Este codigo está correto? (eu fiz e o resultado foi so um item falso

zero1=[]
([lista for lista in dados if lista[2] == True],zero1.append(lista))
1 resposta
solução!

Olá, Tabata! Tudo bem com você?

Da forma como você está executando seu código está pegando apenas o último elemento, pois está sendo primeiro sendo executado o List Comprehension e logo após você executa zero1.append(lista). Como lista é a variável do laço for, e o laço chegou ao final quando executar essa parte do código (zero1.append(lista)), então a variável lista possui o último elemento de dados, que é ['Carens', 2011, False]]. Por esse motivo você teve como resultado apenas um item falso.

Creio que o que você esteja tentando fazer é salvar esses elementos em uma lista, e podemos fazer isso de algumas formas. Vou mostrar duas, se não for exatamente o que procura me retorne por aqui mesmo, tudo bem?

1:

zero1=[]
[zero1.append(lista) for lista in dados if (lista[2] == True)]

zero1

Saída:

[['DS5', 2019, True], ['A5', 2019, True]]

Aqui estamos fazendo a inserção dos elementos no próprio List Comprehension através do método .append().

2:

zero1 = [lista for lista in dados if (lista[2] == True)]

zero1

Saída:

[['DS5', 2019, True], ['A5', 2019, True]]

Aqui estamos fazendo a atribuição do resultado do List Comprehension de forma direta para a variável zero1.

Caso você não possua tanta familiaridade com List Comprehension, deixo como sugestão de leitura esse tópico, desse outro tópico e desse artigo (em inglês).

Espero ter ajudado, mas se ainda persistir alguma dúvida estou sempre à disposição.

:)

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

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