Manejo de strings en Python
En este artículo repasaremos algunos métdos y formas de trabajo sobre cadenas de carácteres, variables tipo string, en el lenguaje Python.
Las cadenas de carácteres(strings) se manejan en Python como colecciones de caracteres. Por lo que podemos utilizar el acceso a las pociciones y las propiedades de slicing (subcadenas).
#Cadena de ejemplo
s="cadena de caracteres"
#Imprimir cadena
#imprimir primer carácter
#imprimir último carácter
#Substring desde posición 2 hasta posición 5
#Substring desde posición 0 hasta posición 5
#Substring desde posición 7 hasta posición final
Mostrará:
cadena de caracteres c s dena cadena de caracteres
También podemos recorrer una cadena utilizando un bucle como en el siguiente ejemplo.
#Recorrido e impresión letra por letra
for
letrain
s:
Cuya salida será:
c a d e n a d e c a r a c t e r e s
En reiteradas ocaciones necesitamos conocer si un string comienza o termina con determinada palabra o símbolos. Lo podríamos verificar de la siguiente manera.
#Evaluación de substring al comienzo
if
s[:6] =="cadena"
:"comienza con cadena"
)#Evaluación de substring al final"
if
s[10:] =="caracteres"
:"finaliza con caracteres"
)
Como debemos contar las cantidad de carácteres para poder indicar el rango de la sub-cadena, no resulta cómodo ni de fácil lectura. Python imprementa unos métodos sobre un string que nos permiten realizar estas acciones de manera más sencilla. Con startswith() y endswith(), podemos preguntar por el comienzo y final de una cadena respectivamente.
#Utilización de startswith
if
s.startswith("cadena"
):"comienza con cadena"
)#Utilización de endswith
if
s.endswith("caracteres"
):"finaliza con caracteres"
)
El método strip
Cuando se realiza la carga de datos mediante input() es muy común que el usuaio ingrese espacios al comienzo o final del campo ingresado. Esto nos puede complicar a la hora de realizar comparaciones y guardado de los datos.
Una manera desolucionar este problema es utilizando el método strip() como se muestra a continuación.
s=" cadena con espacio inicial"
#Con el método strip()se quita espacio inicial
if
s.strip() =="cadena con espacio inicial"
:"cadenas iguales"
)else:
"cadenas distintas"
)
Utilizacion para lectura de archivos
Al leer una archivo de texto con varias lineas, al procesarlas nos mantendrás las bajadas de linea.
El siguiente código:
f=open("archivo.txt"
,"r"
) lineas=f.readlines()for
lineain
lineas:
No mostrará:
linea 1 linea 2 linea 3
Para solucionarlo también podemos utilizar strip() para quitar los caracteres de salto de línea (n):
f=open("archivo.txt"
,"r"
) lineas=f.readlines()for
lineain
lineas:
Obteniendo:
linea 1 linea 2 linea 3
Es importante aclarar que el método strip() no módifica la cadena original si queremos utilizar el resultado en otra instrucción posterior debemos asignarlo a una nueva variable
s=" cadena con espacio inicial"
s_obtenida=s.strip()
Búsquedas y reemplazos
Podemos utilizar el método fínd() para buscar una cadena en otra. Nos retornará la posición de la primera ocurrencia encontrada. En caso de no encotrar a cadena buscada retornará el valor -1.
s="cadena de caracteres"
#encuentra una cadena
posicion=s.find("caracteres"
)
Nos retornará el la posición 7.
También la podemos utilizar con parámetros find(valor_buscado, posición_inicial, posición_final), como en el siguiente ejemplo donde queremos saltear la primer ocurencia de la la cadena "de".
s="cadena de caracteres"
posicion=s.find("de"
,6)
Nos retornará el la posición 10.
Para reemplazar un caracter o cadena por otros, se uliza el método replace("cadena_buscada","cadena_de_reemplazo"). Al igual que ocurre con strip(), retorna una cadena nueva sin modificar la original.
s="cadena de caracteres"
#replace("cadena_buscada","cadena_de_reemplazo")
s2= s.replace("caracteres"
,"eslabones"
)
Mostrará:
cadena de eslabones
También se puede utilizar para borrar caracteres o cadenas. Modificará todas las ocurrencias que encuentre.
#borrado de caracteres
s="cadena de caracteres"
s2=s.replace("a"
," "
)
Mostrará:
c den de c r cteres
El método split
El método split(cadena, delimitador) divide una cadena a partir de un carácter o cadena dada, y guarda cada parte como un elemento de una lista.
Tener en cuenta que si no encuentra el delimitador en la cadena, retornará una cadena con un sólo elemento igual a la cadena original.
s="cadena de caracteres"
#separar palabras y generar una lista
lista=s.split(" "
)
Obtendremos:
['cadena', 'de', 'caracteres']
Mayúsculas y minúsculas
Por último veremos como pasar toso los caracteres de un string a máusculas con upper() a minusculas con lower() y capitalizar colocando el primer carácter en mayúscula y el resto en minúscula con capitalize(). Los tres métodos retornan una nueva cadena modificada.
s="Cadena De Caracteres"
mayusculas=s.upper()
Mostrará:
CADENA DE CARACTERES cadena de caracteres Cadena de caracteres
Este y otros contenidos los podés aprender en el Curso de Python