¿Cómo elimino todos los espacios en una cadena de Python? Por ejemplo, quiero strip my spaces
que 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.translate
mé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 string
Lo 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.\s
en 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/join
otranslate
.Necesitamos un conjunto de espacios en blanco:
El
filter
incorporado: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.translate
mé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.maketrans
se 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
string
módulo en python contiene algunas operaciones de cadena y constantes comunes.string.whitespace
es 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.fromkeys
se utiliza para crear un diccionario donde las claves son los caracteres de la cadena devueltos porstring.whitespace
cada 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_space
cadena 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
join
solución de la respuesta superior :fuente