Manejo de strings en Python en IOTeca

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
print(s)
#imprimir primer carácter
print(s[0])
#imprimir último carácter
print(s[-1])
#Substring desde posición 2 hasta posición 5
print(s[2:6])
#Substring desde posición 0 hasta posición 5
print(s[:6])
#Substring desde posición 7 hasta posición final
print(s[7:])

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 letra in s:
	print(letra)

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":
	print("comienza con cadena")	

#Evaluación de substring al final"	
if s[10:] =="caracteres":
	print("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"):
	print("comienza con cadena")

#Utilización de endswith	
if s.endswith("caracteres"):
	print("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":
	print("cadenas iguales")
else:
	print("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 linea in lineas:
	print(linea)	
f.close()

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 linea in lineas:
	print(linea.strip())	
f.close()

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()
print(s_obtenida)

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")
print(posicion)

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)
print(posicion)

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")
print(s2)

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", " ")
print(s2)

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(" ")
print(lista)

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()
print(mayusculas)
minusculas=s.lower()
print(minusculas)
capital=s.capitalize()
print(capital)

Mostrará:

CADENA DE CARACTERES
cadena de caracteres
Cadena de caracteres

Creado: 22/07/2020  

Publicidad

| Volver a Python |

Comentarios

Para poder comentar debés registrarte e ingresar al sitio.