2010-09-01 23 views
5

Ho una lista:Come rimuovere spazi iniziali e finali dalle stringhe in una lista Python

row=['hi', 'there', 'how', ...........'some stuff is here are ','you'] 

come si può vedere row[8]='some stuff is here are '

se l'ultimo carattere è uno spazio vorrei ottenere tutto tranne per l'ultimo carattere come questo:

if row[8][len(row[8])-1]==' ': 
    row[8]=row[8][0:len(row[8])-2] 

questo metodo non funziona. qualcuno può suggerire una sintassi migliore per favore?

+1

Cosa si intende per "non funziona"? Che errore ottieni? –

+0

In realtà, non riesco a vedere che 'row [8]' è ''alcune cose sono qui'' - hai omesso quella parte. Se lo fosse, il codice che avevi, sebbene non il più Pythonic, avrebbe funzionato. – Thanatos

+0

@Thanatos puoi suggerire come posso renderlo più pietoso –

risposta

7
row = [x.strip() for x in row] 

(se si desidera solo per ottenere spazi alla fine, utilizzare rstrip)

+0

Questo elimina anche gli spazi principali. L'OP potrebbe non volerlo. Vedi 'rstrip()'. – MAK

4

Numero di indici negativi dalla fine. E le fette sono ancorate prima dell'indice indicato.

if row[8][-1]==' ': 
    row[8]=row[8][:-1] 
+0

sulla prima riga: IndexError: string index out of range –

+0

Quindi stai facendo qualcos'altro. Come non controllare per vedere se la lunghezza è maggiore di 0. –

+1

@ user2982349-this-is-a-terrible-name: Sei sicuro che la riga [8] non è ''? – Thanatos

4

Quindi lo vuoi senza spazi finali? Puoi semplicemente usare row[8].rstrip?

+3

Non dovrebbe essere 'row [8] .rstrip()'? – MAK

+0

@MAK: Ovviamente hai ragione. Ero pigro e ho appena dato il nome del metodo;) – Daenyth

Problemi correlati