Fund. Prog U.T. 3.
ESTRUCTURAS DE DATOS 25/01/2024
U.T. 3. ESTRUCTURAS DE DATOS.
Objetivos:
o Conocer el concepto de estructura de datos.
o Conocer las listas.
o Conocer los conjuntos.
o Conocer las tuplas.
o Conocer las expresiones regulares y su uso.
2.1 .- ESTRUCTURAS DE DATOS EN PYTHON
Las estructuras de datos en Python son fundamentales para organizar y manipular información de
manera eficiente. En este tema, abordaremos cuatro tipos de estructuras de datos esenciales: listas,
conjuntos, tuplas y cadenas de caracteres. También exploraremos cómo las expresiones regulares pueden ser
utilizadas para buscar y manipular patrones en cadenas de caracteres.
2.2 .- LISTAS
Las listas son estructuras de datos versátiles que permiten almacenar colecciones ordenadas de
elementos. Cada elemento en una lista puede ser de cualquier tipo de datos, y las listas son modificables
(mutables), lo que significa que puedes agregar, eliminar o modificar elementos.
Ejemplo de creación de una lista en Python:
mi_lista = [1, 2, 3, "cuatro", 5.0]
2.3 .- CONJUNTOS
Los conjuntos son colecciones no ordenadas de elementos únicos. Los elementos de un conjunto no
están indexados, y no se permiten duplicados. Los conjuntos son útiles cuando necesitas realizar
operaciones de conjuntos, como unión, intersección o diferencia.
Ejemplo de creación de un conjunto en Python:
mi_conjunto = {1, 2, 3, 4, 5}
2.4 .- TUPLAS
Las tuplas son similares a las listas, pero a diferencia de las listas, las tuplas son inmutables, lo que
significa que no puedes cambiar su contenido una vez que se crean. Se utilizan para representar datos que no
deberían cambiar, como coordenadas geográficas.
Ejemplo de creación de una tupla en Python:
mi_tupla = (1, 2, 3, "cuatro", 5.0)
1
Fund. Prog U.T. 3. ESTRUCTURAS DE DATOS 25/01/2024
2.5 .- CADENAS DE CARACTERES
Las cadenas de caracteres son secuencias de caracteres que se utilizan para representar texto. En
Python, las cadenas de caracteres son inmutables, lo que significa que no se pueden modificar después
de su creación. Puedes realizar diversas operaciones con cadenas, como concatenación, división y
manipulación de caracteres.
Ejemplo de creación de una cadena de caracteres en Python:
mi_cadena = "Hola, mundo!"
2.6 .- EXPRESIONES REGULARES
Las expresiones regulares son secuencias de caracteres que definen patrones de búsqueda. En Python,
puedes utilizar el módulo 're' para trabajar con expresiones regulares. Estas son útiles para buscar y
manipular cadenas de caracteres basadas en patrones específicos.
Funciones RegEx
El módulo re ofrece un conjunto de funciones que permite para buscar una cuerda para una coincidencia:
Función Descripción
findall Devuelve una lista que contiene todas las coincidencias
search Devuelve un objeto coincidente si es que hay alguna coincidencia en la cadena de caracteres.
split Devuelve una lista donde la cadena se ha partido en cada coincidencia.
sub Reemplaza cualquier coincidencia con una cadena de caracteres que indiquemos.
Ejemplo de uso de expresiones regulares en Python:
#La función nos va a devolver una lista con las coincidencias de la cadena "te".
#Primero indicamos al intérprete que importe la librería re:
import re
txt = "La RAI ha emitido un reportaje muy interesante"
x = re.findall("te", txt)
print(x)
Salida: ['te', 'te']
2
Fund. Prog U.T. 3. ESTRUCTURAS DE DATOS 25/01/2024
Secuencias especiales
Una secuencia especial es un carácter de \ seguido por uno de los caracteres de la lista de abajo, y tienen un
significado especial:
Carácter Descripción: Example
\A Devuelve una coincidencia si los caracteres especificados están al principio de la cadena. "\ALas"
\b Devuelve una coincidencia donde los caracteres especificados están al principio o al final de una palabra. r"\btex"
(la "r" al principio garantiza que la cadena se trate como una "cadena sin formato o genérica"). r"tex\b"
Devuelve una coincidencia donde los caracteres especificados están presentes, pero NO al principio (o al final) r"\Btex"
\B
de una palabra. r"tex\B"
\d Devuelve una coincidencia donde la cadena contiene dígitos (números del 0 al 9). "\d"
\D Devuelve una coincidencia donde la cadena NO contiene dígitos. "\D"
\s Devuelve una coincidencia donde la cadena contiene un carácter de espacio en blanco. "\s"
\S Devuelve una coincidencia donde la cadena NO contiene un carácter de espacio en blanco. "\S"
\w Devuelve una coincidencia donde la cadena contiene caracteres de palabra (caracteres de la A a la Z, dígitos del 0 "\w"
al 9 y el carácter de subrayado _ )
\W Devuelve una coincidencia donde la cadena NO contiene ningún carácter de palabra (caracteres de la A a la Z, "\W"
dígitos del 0 al 9 y el carácter de subrayado _ ).
\Z Devuelve una coincidencia si los caracteres especificados están al final de la cadena. "Strings\Z"
Ejemplo con \A:
import re
txt = "Buscar cadenas de texto en los Strings"
#Revisa si la cadena txt comienza por "Bus" y lo guarda en una lista llamada x:
x = re.findall("\ABus", txt)
if x:
print("La frase comienza por:", x, ".")
else:
print("Lo siento, la cadena de texto no comienza por esos caracteres.")
Ejemplo con \B:
import re
txt = " Buscar cadenas de texto en los Strings"
#Comprueba si las letras "rin" están presentes, pero NO al principio de palabra.
x = re.findall(r"\Brin", txt)
if x:
print("He encontrado una coincidencia de las letras:",x)
else:
print("No está esa cadena.")
Ejemplo con \s:
import re
txt = " Buscar cadenas de texto en los Strings"
#Comprueba si hay espacios en blanco.
x = re.findall(r"\s", txt)
if x:
print("He encontrado espacios en blanco en la cadena de caracteres:",x)
else:
print("No hay espacios blancos.")
3
Fund. Prog U.T. 3. ESTRUCTURAS DE DATOS 25/01/2024
Otra forma de construir patrones más complejos usando los metacaracteres:
Los metacaracteres son caracteres ASCII que tienen un significado especial:
Carácter Descripción Ejemplo
[] Definimos un conjunto de caracteres. En el ejemplo desde la a hasta la m. "[a-m]"
\ Señala una secuencia especial (también se puede utilizar para escapar de caracteres especiales). "\d"
. Cualquier carácter (excepto el carácter de nueva línea). "h..a"
^ Comenzar con… "^hola"
$ Terminar con… "planet$"
* Cero o más ocurrencias. "ho.*a"
+ Una o más ocurrencias. "ho.+a"
? Cero o una única ocurrencia. "ho.?a"
{} Especificamos exactamente el número de ocurrencias. "ho.{2}a"
| Una o otra. "si|no"
() Captura un grupo
Ejemplo con . (Un caracter):
import re
txt = "Bienvenido a mi mundo"
# Busca una secuencia que comienza por "mu", seguida por dos caracteres cualquiera y
# termina con el carácter "o":
x = re.findall("mu..o", txt)
print(x)
Ejemplo con [] (conjunto de caracteres) y | (uno o otro):
import re
patron = r"gat[o|a]s?"
texto = "Mi gato y tus gatas son bonitos"
x=re.search(patron, texto)
if x:
print("He encontrado la cadena:",x)
else:
print("No la he encontrado.")
Ejemplo con \d:
import re
#Busca en la cadena de texto si contiene números separados por puntos mediante un patrón.
#Guarda la primera ocurrencia en la variable patron.
#La "r" en el patrón indica cadena sin formato o genérica.
texto = "La dirección IP es 192.168.1.1"
patron = r'\d.+\d.+ \d.+ \d'
resultado = re.search(patron, texto)
print (resultado)
Las expresiones regulares son poderosas herramientas para tareas como validación de datos, búsqueda de
información y transformación de texto.
Más ejemplos: https://www.w3schools.com/python/python_regex.asp