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))
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)]
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.
:)