Cómo eliminar los espacios en blanco de una cadena en Python

Jinku Hu 30 enero 2023
  1. Eliminar los espacios en blanco al principio de una cadena en Python
  2. Eliminar los espacios en blanco al final de una cadena en Python
  3. Eliminar los espacios en blanco tanto al principio como al final de una cadena en Python
  4. Eliminar todos los espacios en blanco de una cadena en Python
  5. Sólo eliminar los espacios en blanco duplicados de una cadena en Python
Cómo eliminar los espacios en blanco de una cadena en Python

A continuación se muestra cómo eliminar los espacios en blanco de una cadena. Se podría clasificar principalmente en dos enfoques diferentes, uno es el de los métodos str de Python, como str.split() y str.replace(); el otro es el método de expresión regular de Python.

Usaremos la cadena "Ejemplo Demo" como la cadena a procesar en los siguientes ejemplos.

Eliminar los espacios en blanco al principio de una cadena en Python

Método str.lstrip()

>>> demo = " Demo  Example  "
>>> demo.lstrip()
"Demo  Example  "

Aquí, el método str.lstrip() elimina los caracteres principales especificados en el argumento del método. Si no se da ningún argumento, simplemente elimina los espacios en blanco.

Método regex de Python

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"^\s+", "", demo)
"Demo  Example  "

La fuerza regex sólo encuentra la cadena correspondiente al principio, y significa que coincide con todos los diferentes tipos de espacios en blanco como espacio en blanco, tabulación, retorno, etc. o en otras palabras, es igual a la colección de estos caracteres especiales. + indica que debe coincidir con los espacios en blanco tantos como sea posible.

Puede referirse a este tutorial de expresión regular de Python para aprender más sobre regex.

Eliminar los espacios en blanco al final de una cadena en Python

Método str.rstrip()

En contraste con str.lstrip() que elimina los caracteres al principio de la cadena, str.rstrip() elimina los caracteres al final.

>>> demo = " Demo  Example  "
>>> demo.lstrip()
" Demo  Example"

Método regex de Python

Del mismo modo, debería utilizar una expresión que coincida con los espacios en blanco al final de la cadena.

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"\s+$", "", demo)
" Demo  Example"

Eliminar los espacios en blanco tanto al principio como al final de una cadena en Python

str.strip() Método

str.strip() es la combinación de str.lstrip() y str.rstrip() para eliminar los espacios en blanco al principio y al final de la cadena.

>>> demo = " Demo  Example  "
>>> demo.strip()
"Demo  Example"

Método sub() de Python regex

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"^\s+|\s+$", "", demo)
"Demo  Example"

Eliminar todos los espacios en blanco de una cadena en Python

La cadena de Python reemplaza el método str.replace()

No es necesario comprobar la posición del espacio en blanco. Por lo tanto, puede utilizar el método str.replace() para reemplazar todos los espacios en blanco con la cadena vacía.

>>> demo = " Demo  Example  "
>>> demo.replace(" ", "")
'DemoExample'

La cadena de Python regex reemplaza el método sub()

La expresión regex sólo podía ser \s+ para coincidir con los espacios en blanco.

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"\s+", "", demo)
"DemoExample"

Sólo eliminar los espacios en blanco duplicados de una cadena en Python

Método de división de cadenas de Python str.split()

>>> demo = " Demo  Example  "
>>> " ".join(demo.split())
'Demo Example'

str.split() devuelve una lista de la subcadena de la cadena, utilizando espacios en blanco como cadena delimitadora.

El método de separación regex de Python re.split()

>>> import re
>>> demo = " Demo  Example  "
>>> " ".join(re.split(r"\s+", demo)
" Demo Example "
Advertencia
Los resultados de re.split() y str.split() son diferentes donde re.split() tendrá una cadena vacía al principio o al final de la lista si la cadena tiene espacios en blanco en estas posiciones, pero str.split() no incluye ninguna cadena vacía en su resultado.
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - Python String