¿Cómo elimino todos los espacios en una cadena de Python? Por ejemplo, quiero strip my spacesque se convierta una cadena como stripmyspaces, pero parece que no puedo lograr eso con strip():
>>> 'strip my spaces'.strip()
'strip my spaces'
python
python-3.x
spaces
strip
Nombre de usuario incorrecto
fuente
fuente

Respuestas:
Aprovechando el comportamiento de str.split sin parámetro sep:
Si solo desea eliminar espacios en lugar de todos los espacios en blanco:
Optimización prematura
A pesar de que la eficiencia no es el objetivo principal, escribir un código claro sí lo es, aquí hay algunos tiempos iniciales:
Tenga en cuenta que la expresión regular se almacena en caché, por lo que no es tan lenta como imagina. Compilarlo de antemano ayuda a algunos, pero solo sería importante en la práctica si llama a esto muchas veces:
Aunque re.sub es 11.3 veces más lento, recuerde que sus cuellos de botella están seguramente en otro lugar. La mayoría de los programas no notarían la diferencia entre cualquiera de estas 3 opciones.
fuente
\s+sustitución. Me quedaría con re.s.translatemétodo por casualidad? Probablemente supera todos los métodos que se muestran en esta página.None- aunque, sorprendentemente, que hace que sea más lento ...myString.translate(None, " \t\r\n\v"). Solo toma 83% mientras la técnica más rápida de Roger (dividir y unir). No estoy seguro si cubre todos los caracteres de espacio en blanco que divide, pero probablemente será suficiente para la mayoría de las aplicaciones ASCII.También maneja los caracteres de espacios en blanco en los que no estás pensando (créeme, hay muchos).
fuente
Alternativamente,
Y aquí está la versión de Python3:
fuente
NameError: name 'string' is not defined.import stringLo más simple es usar reemplazar:
Alternativamente, use una expresión regular:
fuente
Eliminar los espacios iniciales en Python
Eliminar los espacios finales o finales en Python
Elimine los espacios en blanco del principio y el final de la cadena en Python
Eliminar todos los espacios en python
fuente
Prueba una expresión regular con
re.sub. Puede buscar todos los espacios en blanco y reemplazarlos con una cadena vacía.\sen su patrón coincidirá con los espacios en blanco, y no solo un espacio (pestañas, líneas nuevas, etc.). Puede leer más al respecto en el manual .fuente
fuente
Como mencionó Roger Pate, el siguiente código funcionó para mí:
Estoy usando Jupyter Notebook para ejecutar el siguiente código:
fuente
Se aplican las técnicas estándar para filtrar una lista, aunque no son tan eficientes como los métodos
split/joinotranslate.Necesitamos un conjunto de espacios en blanco:
El
filterincorporado:Una lista de comprensión (sí, use los corchetes: consulte el punto de referencia a continuación):
Un pliegue:
Punto de referencia:
fuente
TL / DR
Esta solución fue probada usando Python 3.6
Para quitar todos los espacios de una cadena en Python3, puede usar la siguiente función:
Para eliminar los caracteres de espacio en blanco ('\ t \ n \ r \ x0b \ x0c') puede usar la siguiente función:
Explicación
El
str.translatemétodo de Python es un método de clase incorporado de str, toma una tabla y devuelve una copia de la cadena con cada carácter asignado a través de la tabla de traducción aprobada. Documentación completa para str.translatePara crear la tabla de traducción
str.maketransse utiliza. Este método es otro método de clase integrado destr. Aquí lo usamos con un solo parámetro, en este caso un diccionario, donde las claves son los caracteres a ser reemplazados asignados a valores con el valor de reemplazo de caracteres. Devuelve una tabla de traducción para usar constr.translate. Documentación completa para str.maketransEl
stringmódulo en python contiene algunas operaciones de cadena y constantes comunes.string.whitespacees una constante que devuelve una cadena que contiene todos los caracteres ASCII que se consideran espacios en blanco. Esto incluye el espacio de caracteres, tabulación, salto de línea, retorno, avance de página y tabulación vertical. Documentación completa para cadenaEn la segunda función
dict.fromkeysse utiliza para crear un diccionario donde las claves son los caracteres de la cadena devueltos porstring.whitespacecada uno con valorNone. Documentación completa para dict.fromkeysfuente
Si el rendimiento óptimo no es un requisito y solo desea algo absolutamente simple, puede definir una función básica para probar cada carácter utilizando el método "isspace" integrado en la clase de cadena:
Construir la
no_white_spacecadena de esta manera no tendrá un rendimiento ideal, pero la solución es fácil de entender.Si no desea definir una función, puede convertirla en algo vagamente similar con la comprensión de la lista. Tomando prestado de la
joinsolución de la respuesta superior :fuente