2010-09-01 19 views
5

tengo una lista:Cómo quitar espacios iniciales y finales de las cadenas en una lista de Python

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

como se puede ver row[8]='some stuff is here are '

si el último carácter es un espacio que me gustaría tener todo a excepción del último carácter como este:

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

este método no funciona. ¿alguien puede sugerir una mejor sintaxis, por favor?

+1

¿Qué quiere decir por "no trabajar"? ¿Qué error obtienes? –

+0

En realidad, no puedo ver que 'row [8]' is ''algunas cosas están aquí'' - omitiste esa parte. Si lo fuera, el código que tenías, aunque no el más Pythonic, habría funcionado. – Thanatos

+0

@Thanatos puede sugerir cómo puedo hacerlo más pythonic –

Respuesta

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

(si lo que desea es conseguir espacios al final, utilice rstrip)

+0

Esto también elimina los espacios iniciales. El OP tal vez no quiera eso. Ver 'rstrip()'. – MAK

4

Los índices negativos cuentan desde el final. Y las rodajas están ancladas antes del índice dado.

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

en la primera línea: IndexError: índice de cadena fuera de rango –

+0

Entonces está haciendo algo diferente. Como no verificar para ver si la longitud es mayor que 0. –

+1

@ user2982349-this-is-a-terrible-name: ¿Está seguro de que la fila [8] no es ''? – Thanatos

4

¿Lo quieres sin espacios al final? ¿Puedes simplemente usar row[8].rstrip?

+3

¿No debería ser 'row [8] .rstrip()'? – MAK

+0

@MAK: Tienes razón, por supuesto. Estaba siendo flojo y solo daba el nombre del método;) – Daenyth

Cuestiones relacionadas