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

lista com For aninhado

Resolvi fazer uma modificação no código do professor para eu não precisar saber em que posição o True se encontra na lista. Ficou assim:

carros_true = []
carros_false = []
for i in dados:
  for j in i:
    if (j == True):
      carros_true.append(i)
    else:
      carros_false.append(i)
print(carros_true)
print(carros_false)

resultado para carros_true está ok, pois essa lista contém apenas os carros que possuem True em alguma posição da lista. Porem, o mesmo não ocorre para carros_false. Ela me retorna todos os carros cuja lista contém tanto true quanto false. para corrigir isso, usei um elif, Ficou assim:

carros_true = []
carros_false = []
for i in dados:
  for j in i:
    if (j == True):
      carros_true.append(i)
    elif (j == False):
      carros_false.append(i)
print(carros_true)
print(carros_false)

E está funcionando como esperado. Ou seja, carros_true contem apenas lista de carros com true e carros_false apenas lista de carros com false (em qualquer posiçao) Porem, ainda continuo sem entender porque o else também nao me traz o mesmo resultado, ja que todas as listas de carros ou têm true ou têm false dentro delas.

1 resposta
solução!

Olá Rogério, tudo bem? Espero que sim!

O índice j pode assumir qualquer valor, portanto o else não se limita somente quando j == False. Se j for alguma string ou algum número o else será verdadeiro e adicionará a lista na variável carros_false.

Bons estudos!