Python

Manipulación de cadenas en Python

La manipulación de cadenas de texto es una tarea habitual y clave en programación. Por eso Python, al igual que la mayoría de los lenguajes de programación, ofrece una serie de funciones para ello en la librería estándar. En esta publicación, se explorarán algunas de las funciones y métodos disponibles para la manipulación de cadenas en Python. Conocer y comprender estas funciones y métodos es necesario para trabajar de manera efectiva con cadenas de texto.

Obtener la longitud de una cadena de texto

La función len() de Python, cuando se le pasa como parámetro una cadena de texto, devuelve la longitud de la cadena. Una función que se puede usar de forma fácil como se muestra a continuación.

# Asignar una cadena de texto a la variable
message = "¡Hola mundo!"

# Obtener la longitud de la cadena de texto
length = len(message)

# Imprimir la longitud por pantalla
print(length)
12

Cambiar entre mayúsculas y minúsculas

Las cadenas de texto en Python cuentan con varios métodos para cambiar los textos a mayúsculas o minúsculas. Permitiendo homogeneizar el formato de las cadenas de texto que se usan en una aplicación. El método lower() crea una nueva cadena igual a la original pero en minúsculas. De forma análoga, el método upper() crea una nueva cadena con el texto en mayúsculas. Finalmente, también existe el método title() que crea una nueva cadena con la primera letra de cada palabra en mayúsculas, esto es, en formato de título. El uso de estos métodos es bastante sencillo como se muestra a continuación.

# Convertir el texto en minúsculas
lowercase_message = message.lower()
print(lowercase_message)

# Convertir el texto en mayúsculas
uppercase_message = message.upper()
print(uppercase_message)

# Convertir el texto a formato titulo
title_message = message.title()
print(title_message)
¡hola mundo!
¡HOLA MUNDO!
¡Hola Mundo!

Eliminación de espacios en blanco iniciales y finales

Un problema habitual en las cadenas de texto es la existencia de espacios en blanco al principio y al final de la cadena. Lo que puede hacer que dos cadenas que parezcan iguales no lo sean realmente. Para solucionar ese problema las cadenas de texto cuentan con el método strip() que elimina los espacios en blanco al principio y al final de la cadena. Si solamente se desea eliminar los espacios en blanco al principio o al final de la cadena se pueden usar respectivamente los métodos lstrip() y rstrip(). En el siguiente ejemplo se puede ver cómo funcionan estos métodos sobre una cadena con espacios en blanco al principio y al final.

# Cadena de texto con espacios en blanco
message = "  ¡Hola mundo!  "

# Usar los métodos para eliminar espacios en blanco
message_noblanks = message.strip()
message_left = message.lstrip()
message_right = message.rstrip()

# Imprimir los resultados por pantalla
print('-', message, '-')
print('-', message_noblanks, '-')
print('-', message_left, '-')
print('-', message_right, '-')
-   ¡Hola mundo!   -
- ¡Hola mundo! -
- ¡Hola mundo!   -
-   ¡Hola mundo! -

Nótese que en este caso se han incluido guiones al principio y al final de la función print() para mostrar el efecto de los métodos.

Dividir una cadena en una lista

La función split() crea una lista de subcadenas dividiendo la cadena original en base a un separador. Por defecto son los espacios en blanco, pero se le puede indicar cualquier otro como parámetro. Así, como se muestra a continuación, se puede dividir una frase en palabras o en base a un separador como la coma.

# Cadena de texto con una frase
message = "Dividir una cadena, es fácil."

# Dividir una cadena en usando los espacios en blanco
words = message.split()
print(words)

# Dividir una cadena usando un símbolo de puntuación
phrases = message.split(',')
print(phrases)
['Dividir', 'una', 'cadena,', 'es', 'fácil.']
['Dividir una cadena', ' es fácil.']

Unir elementos de una lista en una cadena

Python también cuenta con el método join() para unir una lista en una cadena. Este método une las cadenas de la lista con la cadena sobre la que se aplica. Por eso la forma habitual de usarlo es crear un espacio en blanco y aplicar el método sobre ella. Aunque, como se muestra a continuación también se puede usar otro carácter como un punto.

# Unir las cadenas de texto con espacios
join_space =  ' '.join(words)
print(join_space)

# Unir las cadenas de texto con puntos
join_dot =  '.'.join(words)
print(join_dot)
Dividir una cadena, es fácil.
Dividir.una.cadena,.es.fácil.

Comprobar si una cadena comienza o termina con una subcadena

Entre los métodos disponibles para la manipulación de cadenas en Python existen dos que pueden comprobar si una cadena comienza o termina por una subcadena, respectivamente: startswith() y endswith(). Simplemente se aplica sobre la cadena y como parámetro se pasa la cadena a buscar. Si la cadena comienza o termina con la subcadena el resultado es True, en caso contrario es False.

# Asignar una cadena de texto a la variable
message = "¡Hola mundo!"

# Comprobar si la cadena comienza por Hola (es falso)
starts_with_hola = message.startswith("Hola")
print(starts_with_hola)

# Comprobar si la cadena finaliza con ! (es verdadero)
ends_with_exclamation = message.endswith("!")
print(ends_with_exclamation)
False
True

Reemplazar de subcadenas en una cadena

El método replace() crea una nueva cadena de texto donde se reemplaza las ocurrencias de la primera subcadena que se pasa como parámetro con la segunda. Así se pueden reemplazar letras o palabras por otras. Por ejemplo, en el mensaje ¡Hola mundo! se puede reemplazar mundo por lector con un código como el que se muestra a continuación.

# Reemplaza todas las ocurrencias de "mundo" por "lector"
new_message = message.replace("mundo", "lector")
print(new_message)
¡Hola lector!

Localizar una cadena dentro de otra

Dentro de las tareas de manipulación de cadenas en Python la localización de subcadenas es algo que se puede hacer con los métodos find() e index(). En ambos casos, cuando la cadena a buscar se encuentra dentro de la otra la función devuelve la posición de la primera ocurrencia. La diferencia está en lo que pasa cuando no existe la cadena a buscar, en este caso find() devuelve -1, mientras que index() genera un mensaje de error que para la ejecución del código. Por eso, es más habitual el uso de find().

# Buscar o, existe
print(message.find('o'))

# Buscar w, no existe
print(message.find('w'))

# Buscar o, existe
print(message.index('o'))

# Buscar w, no existe
print(message.index('w'))
2
-1
2
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[8], line 11
      8 print(message.index('o'))
     10 # Buscar w, no existe
---> 11 print(message.index('w'))

ValueError: substring not found

Conclusiones

La manipulación de cadenas en Python es una tarea que se puede hacer fácilmente gracias a las funciones y métodos que se incluyen por defecto en el lenguaje. Los cuales es necesario conocer si se trabaja con cadenas de texto. Como se ha visto en la entrada, para la mayoría de las tareas que se suelen hacer en el día a día existe una forma estándar para conseguirlo.

Imagen de Deborah Hudson en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

3 días ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

5 días ago

Curiosidad: ¿Por qué usamos p < 0.05? Un umbral que cambió la historia de la ciencia

En casi cualquier análisis estadístico —ya sea en medicina, psicología, economía o ciencia de datos—…

1 semana ago

¿Está concentrado el MSCI World? Un análisis con Gini, Lorenz y leyes de potencia

El MSCI World Index suele presentarse como “la ventana al mundo” para quienes invierten en…

2 semanas ago

Curiosidad: La maldición de la dimensionalidad, o por qué añadir más datos puede empeorar tu modelo

En el mundo del análisis de datos solemos escuchar una idea poderosa: cuantos más datos,…

2 semanas ago

Error npm ERR! code EACCES al instalar paquetes en Node.js: Cómo solucionarlo paso a paso

¿Te has encontrado con este error al intentar instalar paquetes con npm? npm ERR! code…

3 semanas ago

This website uses cookies.