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
Deja una respuesta