python - español - Cómo quitar todos los espacios en blanco de la cadena
strip blank spaces python (6)
Alternativamente,
"strip my spaces".translate( None, string.whitespace )
Y aquí está la versión de Python3:
"strip my spaces".translate(str.maketrans('''', '''', string.whitespace))
¿Cómo elimino todos los espacios en una cadena de Python? Por ejemplo, quiero que una cadena como strip my spaces
se convierta en stripmyspaces
, pero no puedo lograr eso con strip()
:
>>> ''strip my spaces''.strip()
''strip my spaces''
Aprovechando el comportamiento de str.split sin parámetro sep:
>>> s = " /t foo /n bar "
>>> "".join(s.split())
''foobar''
Si solo desea eliminar espacios en lugar de todos los espacios en blanco:
>>> s.replace(" ", "")
''/tfoo/nbar''
Optimización prematura
A pesar de que la eficiencia no es el objetivo principal (escribir código claro), aquí hay algunos tiempos iniciales:
$ python -m timeit ''"".join(" /t foo /n bar ".split())''
1000000 loops, best of 3: 1.38 usec per loop
$ python -m timeit -s ''import re'' ''re.sub(r"/s+", "", " /t foo /n bar ")''
100000 loops, best of 3: 15.6 usec per loop
Tenga en cuenta que la expresión regular se almacena en caché, por lo que no es tan lento como se imaginaría. Compilarlo de antemano ayuda a algunos, pero solo importaría en la práctica si llamas a esto muchas veces:
$ python -m timeit -s ''import re; e = re.compile(r"/s+")'' ''e.sub("", " /t foo /n bar ")''
100000 loops, best of 3: 7.76 usec per loop
A pesar de que re.sub es 11.3 veces más lento, recuerde que sus cuellos de botella están seguramente en otra parte. La mayoría de los programas no notarían la diferencia entre cualquiera de estas 3 opciones.
El más simple es usar reemplazar:
"foo bar/t".replace(" ", "").replace("/t", "")
Alternativamente, use una expresión regular:
import re
re.sub(r"/s", "", "foo bar/t")
Prueba una expresión regular con re.sub
. Puede buscar todos los espacios en blanco y reemplazarlos con una cadena vacía.
/s
en su patrón coincidirá con los caracteres de espacios en blanco, y no solo con un espacio (pestañas, líneas nuevas, etc.). Puede leer más sobre esto en el manual .
>>> import re
>>> re.sub(r''/s+'', '''', ''strip my spaces'')
''stripmyspaces''
También maneja cualquier espacio en blanco que no estés pensando (créeme, hay muchos).
import re
re.sub('' '','''',''strip my spaces'')