2013-11-09 16 views
6
with open("text.txt", 'r') as file: 
    for line in file: 
     line = line.rstrip('\n' + '').split(':') 
     print(line) 

Ho difficoltà a provare a rimuovere le liste vuote nella serie di array che vengono generati. Voglio rendere ogni linea una matrice in text.txt, quindi avrei la possibilità di accedere con precisione ad ogni elemento singolarmente, di ogni linea.Rimozione di elementi vuoti da una matrice in Python

Gli elenchi vuoti si presentano come [''] - come potete vedere dalla quarta riga, ho provato a escluderli esplicitamente. Gli elementi vuoti sono stati riempiti con caratteri di nuova riga, che sono stati rimossi con successo utilizzando .rstrip('\n').

Edit:

ho avuto un malinteso con alcuni termini, quanto sopra è stato aggiornato. In sostanza, voglio sbarazzarmi delle liste vuote.

+0

Tecnicamente '['']' non è una lista vuota. È una lista con una stringa vuota al suo interno. E il tuo commento sulla risposta di Games suggerisce che tu in qualche modo vuoi catturare i valori vuoti dal tuo elenco? Penso che la domanda più importante sia: per che cosa? Ci sono modi migliori per contare semplicemente. –

risposta

14

Poiché non riesco a vedere la vostra linea esatta, è difficile darvi una soluzione che soddisfi perfettamente le vostre esigenze, ma se volete ottenere tutti gli elementi in una lista che non sono stringhe vuote, allora potete farlo :

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

È inoltre possibile utilizzare filter con None o bool:

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

Se si desidera sbarazzarsi di liste con stringhe vuote, quindi per il vostro esempio specifico si può fare questo:

0.123.
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 
+0

Quale linea esatta vorresti vedere? Un esempio di una delle uscite? In tal caso ... – adampski

+0

['123', '123', '1039 ',' 123 ',' 123 ',' 123 ',' 123 '] [' '] – adampski

+0

@ user2296349 Quello non è esattamente una lista, ora è? –

Problemi correlati