Eliminar elementos vacíos de una matriz en Python

with open("text.txt", 'r') as file: for line in file: line = line.rstrip('\n' + '').split(':') print(line) 

Tengo problemas al intentar eliminar listas vacías en la serie de matrices que se están generando. Quiero hacer que cada línea sea una matriz en text.txt , por lo que tendría la capacidad de acceder con precisión a cada elemento individualmente, de cada línea.

Las listas vacías se muestran a sí mismas como [''] ; como puede ver en la cuarta línea, he tratado de eliminarlas explícitamente. Los elementos vacíos una vez se rellenaron con nuevos caracteres de línea, estos se eliminaron con éxito utilizando .rstrip('\n') .

Editar:

He tenido un concepto erróneo con alguna terminología, lo anterior ya está actualizado. Esencialmente, quiero deshacerme de las listas vacías.

Como no puedo ver su línea exacta, es difícil darle una solución que se adapte perfectamente a sus requisitos, pero si desea obtener todos los elementos de una lista que no sean cadenas vacías, puede hacer esto:

 >>> l = ["ch", '', '', 'e', '', 'e', 'se'] >>> [var for var in l if var] Out[4]: ['ch', 'e', 'e', 'se'] 

También puedes usar el filter con None o bool :

 >>> filter(None, l) Out[5]: ['ch', 'e', 'e', 'se'] >>> filter(bool, l) Out[6]: ['ch', 'e', 'e', 'se'] 

Si desea deshacerse de las listas con cadenas vacías, para su ejemplo específico puede hacer esto:

 with open("text.txt", 'r') as file: for line in file: line = line.rstrip('\n' + '').split(':') # If line is just empty if line != ['']: print line