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))
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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))
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)]
zero1Saí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)]
zero1Saí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.
:)