Eliminar espacios en blanco con Python

18/May/2022 Python Deja un comentario
Ejemplos Programación en Python

Seguro que hay muchas formas de eliminar espacios en blanco con Pyhton. Pero en nuestro caso se nos han ocurrido tres formas de hacerlo que veremos a continuación. Analizaremos cuales son sus pros y sus contras. Las opciones que vamos a analizar son:

Así que vayamos viéndolas en detalle. Lo primero será definir una cadena de texto en Python que contenga espacios para que los podamos eliminar. La cadena será la siguiente:

cadena = ' \tSoy una cadena\t\n\tSoy una cadena tabulada \n Soy otra cadena'

Como se puede ver en nuestra cadena utilizamos tabuladores y saltos de línea para poner estos espacios. Si la volcamos por pantalla tendremos algo parecido a lo siguiente:

        Soy una cadena
        Soy una cadena tabulada 
 Soy otra cadena

Eliminar espacios en blanco con Python mediante strip

En el primer caso vamos a utilizar el método .strip() para poder eliminar espacios en blanco con Pyhton. El método .strip()  nos permite eliminar los espacios en blanco que haya al principio y al final de la cadena. Simplemente tendremos que invocar a este método sobre la cadena de la que queramos limpiar los caracteres en blanco.

print ("---Cadena con strip---")
cadena_uno = cadena.strip()
print (cadena_uno)

El principal problema de este método es que no nos eliminará los espacios en blanco que existan en medio de la cadena. Por lo que, podríamos decir, la eliminación es parcial. La cadena quedará de la siguiente forma por consola:

Soy una cadena
        Soy una cadena tabulada 
 Soy otra cadena

Eliminar espacios en blanco con Python mediante replace

En este caso vamos a utilizar el método .replace(). El método .replace() recibe tres parámetros, aunque nos vamos a quedar con los dos primeros. Estos son, en primer lugar la cadena que queremos buscar y en segundo lugar el valor por el cual queremos reemplazar dicha cadena. Por lo que para eliminar los espacios en blanco pasaremos como primer valor dos espacios en blanco y como segundo valor una cadena vacía.

print ("---Cadena con .replace---")
cadena_dos = cadena.replace("  ","")
print (cadena_dos)

Mediante el método .replace() conseguiremos eliminar los espacios en blanco de cualquier parte de la cadena. Si bien no eliminaremos los espacios en blanco producidos por el salto de línea ni por los tabuladores.

La salida por pantalla será la siguiente:

        Soy una cadena
        Soy una cadena tabulada 
 Soy otra cadena

Cierto es que podríamos buscar las secuencias «\t» y ˝\n» para eliminar esos espacios en blanco, mejorando notablemente esta opción. Aún así tendríamos situaciones en las que podrían seguir apareciendo espacios en blanco.

Eliminar espacios en blanco con Python mediante split y join

En esta tercera opción, y opción que nos vamos a quedar por su simplicidad y efectividad. Lo que vamos a hacer es coger la cadena y extraer los tokens o palabras que contenga, pero sin los espacios en blanco. Esto lo conseguimos invocando al método .split(). Ya no tenemos ningún espacio en blanco, solo las palabras.

Una vez que tenemos este array de elementos lo que vamos a hacer es juntarlos a todos. Y para juntarlos vamos a apoyarnos en el método .join() este método itera sobre un array de elementos y nos devuelve una cadena de caracteres separada por el carácter pasado como parámetro. En este caso, un espacio en blanco.

print ("---Cadena con join---")
cadena_tres = " ".join(cadena.split())
print (cadena_tres)

Al haber eliminado todos los espacios en blanco con .split() y solo metiendo los espacios en blanco necesarios mediante .join() tenemos la cadena perfecta que quedará de la siguiente forma:

Soy una cadena Soy una cadena tabulada Soy otra cadena

Con esto ya hemos visto tres formas diferentes de eliminar espacios en blanco con Pyhton y cuál es nuestra preferida. En vuestro caso, ¿cómo eliminarías los espacios en blanco con Pyhton? Cuéntanoslo en comentarios.

Vídeos sobre Python


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.