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.