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 ejemplos="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 letraforletrains:
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 comienzoifs[:6] =="cadena":"comienza con cadena")#Evaluación de substring al final"ifs[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 startswithifs.startswith("cadena"):"comienza con cadena")#Utilización de endswithifs.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 inicialifs.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()forlineainlineas:
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()forlineainlineas:
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 cadenaposicion=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 caracteress="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 listalista=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
