Está en la página 1de 57

Módulo

Fundamentos de programación Python


Aprendizaje Esperado
Estructuras de datos en Python

Aprendizaje Esperado
Codificar un algoritmo utilizando estructuras de datos del lenguaje
Python para resolver un problema.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

4. Estructuras de datos en Python

Contexto
Las estructuras de datos en Python son fundamentales para organizar y
gestionar datos de manera eficiente en programas y aplicaciones. Python
ofrece una amplia variedad de estructuras de datos incorporadas que
facilitan la manipulación y el almacenamiento de información. Estas
estructuras, que incluyen listas, tuplas, conjuntos, diccionarios y más,
permiten a los programadores almacenar y recuperar datos de diferentes
maneras, adaptándose a las necesidades específicas de cada tarea.
Además, Python es conocido por su facilidad de uso y sintaxis legible, lo
que hace que trabajar con estructuras de datos sea accesible tanto para
principiantes como para desarrolladores experimentados. La elección de
la estructura de datos adecuada en Python es esencial para optimizar el
rendimiento y la eficiencia de un programa, y comprender cómo
funcionan estas estructuras es esencial para los programadores que
desean aprovechar al máximo el lenguaje.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

STRINGS

Definición
En Python, un string es una secuencia de caracteres que representa texto.
Puedes crear strings utilizando comillas simples ('), comillas dobles ("), o
comillas triples (''' o """) para strings multilínea. Por ejemplo:

Métodos de string
Python proporciona una variedad de métodos para manipular y trabajar
con strings. Algunos métodos comunes incluyen:

● len(texto): Devuelve la longitud del texto pasado como argumento.

● texto.upper(): Convierte la cadena a mayúsculas.

● texto.lower(): Convierte la cadena a minúsculas.

● texto.strip(): Elimina espacios en blanco al principio y al final de la


cadena.

● texto.split(separador): Divide el texto en una lista de substrings


utilizando el separador especificado.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

● texto.replace(antiguo, nuevo): Reemplaza todas las ocurrencias del


antiguo substring con el nuevo substring.

● texto.startswith(prefijo) y texto.endswith(sufijo): Verifica si la cadena


comienza o termina con el prefijo o sufijo especificado.

● texto.join(otro texto): se utiliza para unir elementos de una secuencia


(como una lista o una tupla) en una sola cadena de texto, utilizando
un separador específico entre los elementos.

Ejemplos:

Caracteres Especiales en Python

En Python, los caracteres especiales son secuencias de escape que tienen


significados específicos. Algunos de los caracteres especiales más
comunes son:

\n: Nueva línea.

\t: Tabulación.

\\: Barra invertida (para representar una barra invertida literal).

\': Comilla simple (para representar una comilla simple literal dentro
de una cadena entre comillas simples).

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

\": Comilla doble (para representar una comilla doble literal dentro
de una cadena entre comillas dobles).

Estos caracteres especiales se utilizan para representar elementos que


no son visibles en la cadena, como saltos de línea, tabulaciones, etc.
Pueden ser útiles para formatear texto o para insertar caracteres
especiales dentro de cadenas.

Ejemplo:

Su salida:

Formateo de strings
Puedes formatear strings en Python de diversas maneras. Algunos de los
enfoques comunes incluyen:

f-Strings

Las f-strings, de las qué ya habíamos hablado con anterioridad, te


permiten incrustar expresiones y variables en una cadena de texto
usando llaves {}.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Por ejemplo:

Como se puede observar, el texto debe ir precedido de un carácter “f”


para indicar que se usará f-string. Cada variable que incrustemos, debe ir
rodeada de los caracteres de llave { }

Método format

El método format() es una forma versátil de formatear strings en Python.


Se utiliza para insertar valores en una cadena de texto de manera
dinámica, lo que permite la construcción de cadenas compuestas por
partes fijas y partes variables.

Por ejemplo:

Sintaxis básica

La sintaxis básica del método format() implica el uso de llaves {} en la


cadena donde deseas insertar valores, y luego llamar al método format()
en esa cadena para proporcionar los valores que se insertarán. La
sintaxis es la siguiente:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Donde:

cadena: La cadena de texto que deseas formatear.

{ }: Marcadores de posición que indican dónde se insertarán los valores.

valor1, valor2: Los valores que se insertarán en las posiciones


correspondientes.

Ejemplos:

También se puede especificar el orden de los valores:

O especificar los nombres de los valores:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Formato avanzado:

El método format() permite un formato más avanzado, que incluye:

● Alineación y relleno.

● Especificación de la precisión de los números.

● Control sobre la base utilizada para la representación de números.

Ejemplos:

Un ejemplo de texto centrado:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

En este ejemplo, hemos definido el texto que queremos centrar en la


variable texto. Luego, especificamos el ancho total de la cadena en la
variable ancho_total, que es 20 en este caso. Utilizamos el método
format() para centrar el texto en una cadena de ancho total de 20
caracteres. La especificación ^{} indica que el texto debe centrarse, y el
número dentro de las llaves representa el ancho total. El resultado se
almacena en la variable cadena_centro y se imprime.

Ejercicio guiado Formateo de Strings


Primero, vamos a utilizar el método format() que nos permite insertar elementos dentro
de un string en lugares definidos por llaves {}.

nombre = "Alice"

edad = 25

# Usando el método format()

saludo = "Hola, mi nombre es {} y tengo {} años.".format(nombre,


edad)

print(saludo)

Las f-strings son una característica introducida en Python 3.6 que nos permite incrustar
expresiones dentro de los strings de manera directa y legible.

# Usando f-strings

saludo_f = f"Hola, mi nombre es {nombre} y tengo {edad} años."

print(saludo_f)

Supongamos que queremos formatear un número flotante para mostrar solo dos
decimales.

pi = 3.14159265

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

# Usando format() con precisión

formato_pi = "El valor de pi con dos decimales es {:.2f}".format(pi)

print(formato_pi)

# Usando f-strings con precisión

formato_pi_f = f"El valor de pi con dos decimales es {pi:.2f}"

print(formato_pi_f)

Expresiones regulares
Las expresiones regulares, comúnmente conocidas como "regex" o
"regexp," son patrones utilizados para buscar, validar y manipular
cadenas de texto de manera eficiente y flexible. Python proporciona el
módulo re que permite trabajar con expresiones regulares.

Búsqueda de patrones con expresiones regulares:

Las expresiones regulares se utilizan para buscar patrones específicos


dentro de cadenas de texto. Algunos métodos comunes en el módulo se
incluyen:

● re.search(patron,texto): Busca un patrón en todo el texto y devuelve


la primera coincidencia encontrada.
● re.match(patron, texto): Comprueba si el patrón coincide al principio
del texto.
● re.findall(patron,texto): Devuelve una lista de todas las coincidencias
encontradas en el texto.
● re.finditer(patron,texto): Devuelve un iterador de todas las
coincidencias encontradas.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Sintaxis de expresiones regulares

Las expresiones regulares se construyen utilizando una sintaxis especial


que define patrones. Algunos caracteres especiales comunes en
expresiones regulares son:

.: Coincide con cualquier carácter excepto una nueva línea.

*: Coincide con cero o más repeticiones del carácter o patrón anterior.

+: Coincide con una o más repeticiones del carácter o patrón anterior.

?: Coincide con cero o una repetición del carácter o patrón anterior.

[]: Define un conjunto de caracteres. Por ejemplo, [aeiou] coincide con


cualquier vocal.

(): Agrupa patrones.

|: Coincide con cualquiera de los patrones alternativos.

\d: Coincide con un dígito (0-9). Por ejemplo, \d+ coincide con uno o más
dígitos.

\w: Coincide con un carácter alfanumérico o subrayado (letras, números y


guión bajo). Por ejemplo, \w+ coincide con una o más palabras.

\s: Coincide con un carácter de espacio en blanco (espacio, tabulación,


nueva línea, etc.).

\b: Coincide con un límite de palabra. Por ejemplo, \bword\b coincidirá


solo con la palabra "word" y no con palabras que contienen "word".

^ (Caret): Coincide con el inicio de una cadena. Por ejemplo, ^abc


coincidirá solo si "abc" está al principio de la cadena.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

$ (Dólar): Coincide con el final de una cadena. Por ejemplo, xyz$


coincidirá solo si "xyz" está al final de la cadena.

\: Se utiliza como carácter de escape para tratar un carácter especial


como un carácter literal. Por ejemplo, \. coincidirá con un punto literal en
lugar de cualquier carácter.

Rangos de caracteres: [a-z]

Dentro de los conjuntos de caracteres también podemos especificar


rangos añadiendo un guión a la secuencia. Algunos ejemplos de uso son
los siguientes:

● [a-z]+ : indica una secuencia de letras minúsculas.

● [A-Z]+ : se usa para encontrar secuencias de letras mayúsculas.

● [a-zA-Z]+ : es para secuencias de letras mayúsculas o minúsculas.

● [A-Z][a-z]+ : secuencias de una letra mayúscula seguida de una o más


letras mayúsculas.

● [0-9]+ : para secuencias de números de uno o más dígitos.

Ejemplos:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Notar además el prefijo “r” en la definición de la expresión regular. En


Python, el prefijo "r" antes de una cadena de texto se utiliza para indicar
que la cadena es una "cadena cruda" (raw string). Las cadenas crudas
tratan los caracteres de escape, como las barras invertidas (\), de manera
literal. Esto es útil cuando trabajas con expresiones regulares, ya que
evita que Python intérprete los caracteres de escape antes de pasar la
cadena a la función re.

FECHAS

Fechas y horas
Python viene con una variedad de objetos útiles que se pueden usar de
inmediato. Los objetos de fecha son ejemplos de tales objetos. Los tipos
de fecha son difíciles de manipular desde cero, debido a la complejidad
de fechas y horas. Sin embargo, los objetos de fecha de Python facilitan
enormemente la conversión de fechas en los formatos de cadena
deseables.

El formateo de fechas es una de las tareas más importantes a las que te


enfrentarás como programador. Las diferentes regiones del mundo tienen
diferentes formas de representar fechas / horas, por lo tanto, su objetivo
como programador es presentar los valores de fecha de una manera que
los usuarios puedan leer.

Por ejemplo, es posible que deba representar un valor de fecha


numéricamente como “02-23-2018”. Por otro lado, es posible que deba
escribir el mismo valor de fecha en un formato de texto más largo, como
“23 de febrero de 2018”. En otro escenario, es posible que desee extraer
el mes en formato de cadena de un valor de fecha con formato numérico.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Python datetime El módulo, como probablemente adivinó, contiene


métodos que pueden usarse para trabajar con valores de fecha y hora.
Para usar este módulo, primero lo importamos a través del import
declaración de la siguiente manera:

Podemos representar valores de tiempo usando el time clase. Los


atributos de la time la clase incluye la hora, minuto, segundo y
microsegundo.

Los argumentos del time las clases son opcionales. Aunque si no


especifica ningún argumento obtendrá un tiempo de 0, que es poco
probable que sea lo que necesita la mayor parte del tiempo.

Por ejemplo, para inicializar un objeto de tiempo con un valor de 1 hora,


10 minutos, 20 segundos y 13 microsegundos, podemos ejecutar el
siguiente comando:

Su salida sería:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Obtener la fecha y hora actual

Puedes obtener la fecha y hora actual utilizando la clase datetime y su


método now():

Crear objetos de fecha y hora

Puedes crear objetos de fecha y hora utilizando la clase datetime. Puedes


especificar año, mes, día, hora, minutos, segundos y microsegundos:}

Acceder a componentes de fecha y hora

Puedes acceder a componentes específicos de una fecha y hora, como el


año, el mes, el día, la hora, los minutos, los segundos, etc., utilizando
atributos de la clase datetime.

Ejemplo:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Operaciones con fechas

Para realizar operaciones con fechas, como sumar o restar días, horas,
minutos, segundos, etc., se debe usar, generalmente, el módulo
timedelta.

Ejemplo:

También se puede calcular la diferencia entre dos fechas:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Comparar dos fechas:

Formato de fechas

El formato de fechas en el módulo datetime se refiere a cómo


representar y manipular fechas y horas en cadenas de texto o formatos
específicos. Python proporciona un método llamado strftime() (string
format time) que te permite formatear una fecha y hora en una cadena de
texto con el formato deseado.

El método strftime() toma un formato como argumento y devuelve una


cadena que representa la fecha y hora según ese formato.

Algunos de los códigos de formato más comunes que puedes utilizar:

%Y: Año con cuatro dígitos (ejemplo: 2023).

%y: Año con dos dígitos (ejemplo: 23 para 2023).

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

%m: Mes (01-12).

%d: Día del mes (01-31).

%H: Hora en formato 24 horas (00-23).

%I: Hora en formato 12 horas (01-12).

%M: Minutos (00-59).

%S: Segundos (00-59).

%A: Nombre completo del día de la semana (ejemplo: "Monday").

%a: Nombre abreviado del día de la semana (ejemplo: "Mon").

%B: Nombre completo del mes (ejemplo: "January").

%b o %h: Nombre abreviado del mes (ejemplo: "Jan").

%p: AM o PM para formato de 12 horas.

%f: Microsegundos (000000-999999).

%Z: Zona horaria (ejemplo: "UTC" o "EST").

%%: Un signo de porcentaje literal.

Ejemplo:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Su salida:

Esta función se podría utilizar para encontrar, por ejemplo, el día de la


semana:

Resultado:

Ahora, si queremos el resultado en español, podríamos utilizar la librería


locale para definir el idioma:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Conversiones
La conversión de datos a objetos datetime en Python es un proceso
común cuando se trabaja con fechas y horas en tus programas. Puedes
realizar la conversión de varias formas, dependiendo del formato en el
que tengas los datos.

Conversión de una cadena a datetime

Si tienes una cadena que representa una fecha y hora en un formato


específico, puedes usar el método strptime() (string parse time) para
convertirla en un objeto datetime. Debes especificar el formato de la
cadena para que Python pueda interpretarla correctamente.

Ejemplo:

Conversión de datos numéricos a datetime

También puedes crear un objeto datetime proporcionando valores


numéricos para el año, el mes, el día, la hora, los minutos y los segundos.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Conversión de fechas y horas por separado

Si tienes la fecha y la hora por separado, puedes crear un objeto


datetime combinando ambos.

Conversión de datos desde otros formatos

La conversión desde otros formatos, como timestamps Unix (números


enteros que representan segundos desde una fecha de referencia),
también es posible utilizando el módulo datetime. Puedes utilizar
fromtimestamp() para realizar esta conversión.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

COLECCIONES

Listas
Las listas son una estructura de datos fundamental en Python y se
utilizan para almacenar colecciones de elementos de cualquier tipo,
como números, cadenas, objetos y más. Las listas son mutables, lo que
significa que puedes modificar su contenido (agregar, eliminar o
modificar elementos) después de haberlas creado.

Pueden ser

● Heterogéneas: pueden estar conformadas por elementos de distintos


tipos, incluidos otras listas.

● Mutables: sus elementos pueden modificarse.

Creación de listas

Puedes crear una lista en Python encerrando elementos entre corchetes


[] y separándolos por comas.

Ejemplo:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Acceso a elementos

Puedes acceder a elementos individuales de una lista utilizando su índice


(posición) en la lista. Los índices comienzan en 0.

Modificación de elementos

Puedes modificar los elementos de una lista asignando un nuevo valor a


un índice específico:

Funciones de listas

Longitud de una lista

Puedes obtener la longitud de una lista (es decir, la cantidad de


elementos) utilizando la función len()

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Añadir elementos

Puedes añadir elementos al final de una lista utilizando el método


append():

Eliminar elementos

Puedes eliminar elementos de una lista utilizando el método remove() o


la declaración del:

Vaciar una lista

Las listas en Python tienen un método clear() que elimina todos los
elementos de la lista, dejándola vacía.

Recorrer una lista

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Puedes recorrer una lista utilizando bucles como for. Este comando lo
vimos en capítulos anteriores:

Métodos para listas:

Las listas en Python tienen una variedad de métodos útiles para realizar
tareas comunes, como agregar, eliminar, contar elementos, encontrar
índices y más.

Algunos de estos métodos son:

append(): Agrega un elemento al final de la lista.

insert(): Inserta un elemento en una posición específica.

remove(): Elimina la primera ocurrencia de un elemento específico.

pop(): Elimina y devuelve un elemento en una posición específica.

index(): Encuentra el índice de la primera ocurrencia de un elemento.

count(): Cuenta cuántas veces aparece un elemento en la lista.

sort(): Ordena la lista en su lugar.

reverse(): Invierte el orden de los elementos en la lista.

Ejemplos:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Ejercicio guiado
Comenzaremos por crear una lista simple de elementos.

frutas = ['manzana', 'banana', 'cereza']

print("Lista inicial:", frutas)

Agregaremos un elemento al final de la lista utilizando append().

frutas.append('durazno')

print("Después de append():", frutas)

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Insertaremos un elemento en una posición específica utilizando insert().

frutas.insert(1, 'kiwi') # Inserta 'kiwi' en la posición 1

print("Después de insert():", frutas)

Eliminaremos la primera ocurrencia de un elemento específico utilizando remove().

frutas.remove('banana') # Elimina 'banana'

print("Después de remove():", frutas)

Eliminaremos y devolveremos un elemento de una posición específica utilizando pop().

elemento_eliminado = frutas.pop(2) # Elimina el elemento en la


posición 2

print("Después de pop():", frutas)

print("Elemento eliminado:", elemento_eliminado)

Encontraremos el índice de la primera ocurrencia de un elemento utilizando index().

indice = frutas.index('durazno') # Encuentra el índice de 'durazno'

print("Índice de 'durazno':", indice)

Contaremos cuántas veces aparece un elemento en la lista utilizando count().

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

conteo = frutas.count('manzana') # Cuenta cuántas veces 'manzana'


aparece

print("Número de 'manzana':", conteo)

Ordenaremos la lista en su lugar utilizando sort().

frutas.sort()

print("Lista ordenada con sort():", frutas)

Invertiremos el orden de los elementos en la lista utilizando reverse().

frutas.reverse()

print("Lista invertida con reverse():", frutas)

Listas y strings
En Python podemos usar los string de manera similar a las listas.
Además, podemos convertirlas desde un tipo al otro sin ninguna
dificultad.

Conversiones entre Listas y Strings

Puedes convertir una cadena en una lista de caracteres utilizando list()

Para convertir una lista de caracteres nuevamente en una cadena, puedes


usar el método join():

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Métodos de Strings

Los métodos de strings, como split(), strip(), replace(), y upper(), se


pueden aplicar a cadenas y dividirlas, eliminar espacios en blanco,
reemplazar texto y convertir a mayúsculas, respectivamente.

Ejemplos:

Concatenación de Listas y Strings

Puedes concatenar listas utilizando el operador + y cadenas utilizando +.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Iteración a través de Listas y Strings

Puedes utilizar bucles for para recorrer tanto listas como strings:

Listas como pilas


Las listas en Python se pueden utilizar como pilas (stacks) para
implementar una estructura de datos tipo LIFO (Last In, First Out). Esto
significa que el último elemento agregado a la pila es el primero en ser
retirado.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Para esto debemos usar algunas de las funcionas aprendidas


anteriormente:

Agregar elementos a la pila (push)

Para agregar elementos a la pila, puedes utilizar el método append() de


las listas. El nuevo elemento se agrega al final de la lista, lo que lo
convierte en el elemento superior de la pila.

Eliminar elementos de la pila (pop)

Para retirar elementos de la pila (en la forma LIFO), puedes utilizar el


método pop() sin argumentos. Esto eliminará y devolverá el elemento
superior de la pila.

Consultar el elemento superior de la pila sin eliminarlo

Si deseas verificar el elemento superior de la pila sin eliminarlo, puedes


acceder al último elemento de la lista sin usar pop().

Verificar si la pila está vacía

Puedes verificar si la pila está vacía simplemente evaluando la longitud


de la lista.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Ejemplo completo

Listas como colas


De la misma manera, las listas en Python se pueden utilizar como colas
(queues) para implementar una estructura de datos tipo FIFO (First In,
First Out). Esto significa que el primer elemento agregado a la cola es el
primero en ser retirado.

Agregar elementos a la cola (enqueue)

Para agregar elementos a la cola, puedes utilizar el método append() de


las listas. El nuevo elemento se agrega al final de la lista, lo que lo
convierte en el último elemento de la cola.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Eliminar elementos de la cola (dequeue)

Para retirar elementos de la cola (en la forma FIFO), puedes utilizar el


método pop(0) para eliminar y devolver el elemento en la posición 0 de
la lista, que es el primer elemento de la cola.

Consultar el primer elemento de la cola sin eliminarlo

Si deseas verificar el primer elemento de la cola sin eliminarlo, puedes


acceder al elemento en la posición 0 de la lista sin usar pop(0).

Verificar si la cola está vacía

Puedes verificar si la cola está vacía simplemente evaluando la longitud


de la lista.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Ejemplo completo

Listas por comprensión


Las listas por comprensión (list comprehensions) son una característica
poderosa y concisa en Python que te permite crear listas de manera
eficiente utilizando una sintaxis más compacta. Las listas por
comprensión se utilizan para transformar, filtrar y generar listas de
elementos basadas en una secuencia o iteración.

Listas por Comprensión Básicas

Puedes crear una nueva lista aplicando una expresión a cada elemento
de una secuencia (como una lista o rango) utilizando la siguiente
sintaxis:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Ejemplo

Listas por Comprensión con Filtros

Puedes agregar condiciones para filtrar elementos en la lista por


comprensión. Esto te permite crear listas basadas en elementos que
cumplan ciertos criterios.

Ejemplo

Listas por Comprensión Anidadas

También puedes anidar listas por comprensión para crear listas más
complejas. Por ejemplo, puedes crear una matriz utilizando listas por
comprensión anidadas.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Búsqueda de elementos
Para buscar elementos en una lista en Python, tienes varias opciones,
dependiendo de lo que necesites.

Operador in para Verificar la Existencia de un Elemento

Puedes utilizar el operador in para verificar si un elemento está presente


en una lista. Retorna True si el elemento está en la lista y False en caso
contrario.

Método index() para Encontrar el Índice de un Elemento

Si necesitas saber el índice de la primera ocurrencia de un elemento en


la lista, puedes utilizar el método index().

Método count() para Contar las Ocurrencias de un Elemento

Si deseas contar cuántas veces un elemento aparece en la lista, puedes


utilizar el método count().

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Bucle for o while para Recorrer y Buscar Elementos

Puedes utilizar un bucle for para recorrer la lista y buscar elementos


según tus criterios.

Ordenamiento
El ordenamiento de listas es una operación común en la programación
para organizar elementos en una lista en un orden específico. Python
ofrece varias formas de ordenar listas.

Método sort() para Ordenar

El método sort() se utiliza para ordenar una lista en su lugar, es decir,


modifica la lista original. Por defecto, ordena la lista en orden
ascendente.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Puedes ordenar en orden descendente especificando el argumento


reverse=True

Función sorted() para Crear una Nueva Lista Ordenada

La función sorted() se utiliza para crear una nueva lista ordenada basada
en una lista existente sin modificar la original.

Función reverse() para Invertir el Orden de una Lista

Si deseas invertir el orden de una lista sin ordenar los elementos, puedes
utilizar el método reverse().

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Función Personalizada para el Ordenamiento

Puedes utilizar una función personalizada para especificar un criterio de


ordenamiento más complejo. Esto se logra a través del argumento key en
las funciones sort() y sorted(). Por ejemplo, para ordenar una lista de
cadenas por longitud:

Funciones para filtrar listas


Existen algunas funciones que nos ayudan generar nuevas listas, a partir
listas originales aplicando funciones de filtro.

Función map()

La función map() se utiliza para aplicar una función a cada elemento de


una secuencia y crear una nueva secuencia con los resultados.

Función filter()

La función filter() se utiliza para filtrar elementos de una secuencia


(como una lista) según una función de filtrado. La función de filtrado
toma un elemento de la secuencia y devuelve True si debe incluirse en el
resultado o False si debe omitirse.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Función reduce()

La función reduce() se utiliza para aplicar una función acumulativa a los


elementos de una secuencia de izquierda a derecha, reduciéndolos a un
solo valor. Aunque es menos común que filter() y map(), es útil en ciertos
casos.

Estas funciones son útiles para aplicar operaciones a elementos de una


lista de manera eficiente y compacta. Puedes utilizar funciones anónimas
(lambda) con filter() y map() para hacer el código aún más conciso.

por ejemplo:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Matrices
Cuando necesitamos manejar muchos datos, generalmente hay
soluciones más efectivas que tener muchas variables. Por ejemplo, si hay
que guardar 100 números, suele ser más eficiente almacenar esos 100
datos "juntos", formando una "matriz", en vez de usar 100 variables
distintas.

La palabra "matriz" es una traducción del inglés "array". Algunos autores


lo traducen alternativamente como tabla, vector o incluso "arreglo".

En Python, las matrices se pueden representar utilizando listas anidadas,


donde una lista exterior contiene elementos que son listas internas,
formando filas y columnas. Sin embargo, Python no tiene un tipo de
datos de "matriz" incorporado como algunos otros lenguajes de
programación, como MATLAB. En su lugar, las listas anidadas se utilizan
para representar matrices.

Creación de una Matriz

Puedes crear una matriz utilizando listas anidadas. Cada lista interna
representa una fila de la matriz. Asegúrate de que todas las filas tengan
la misma longitud para crear una matriz rectangular.

Acceso a Elementos de una Matriz

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Para acceder a elementos individuales de la matriz, utiliza índices dobles.


El primer índice selecciona la fila y el segundo índice selecciona la
columna.

Iteración a través de una Matriz

Puedes recorrer una matriz utilizando bucles for. Por ejemplo, para
imprimir todos los elementos de la matriz:

Operaciones en Matrices

Si deseas realizar operaciones matriciales, como suma, resta o


multiplicación, puedes hacerlo utilizando bucles y listas anidadas, o
puedes utilizar bibliotecas numéricas como NumPy (que veremos más
adelante), que proporcionan un conjunto completo de funciones y
operaciones para trabajar con matrices de manera eficiente.

Para usar NumPy, primero debes instalarlo si no lo has hecho ya. Luego,
puedes crear matrices NumPy y realizar operaciones matriciales de la
siguiente manera:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Tuplas
Las tuplas en Python son estructuras de datos similares a las listas, pero
con la diferencia principal de que son inmutables. Esto significa que una
vez que creas una tupla, no puedes modificar su contenido (agregar,
eliminar o cambiar elementos).

Una tupla consiste de un número de valores separados por comas, por


ejemplo:

Como puedes ver, en la salida las tuplas siempre se encierran entre


paréntesis, para que las tuplas anidadas puedan interpretarse
correctamente; pueden ingresarse con o sin paréntesis, aunque a menudo
los paréntesis son necesarios de todas formas (si la tupla es parte de una
expresión más grande). No es posible asignar a los ítems individuales de
una tupla, pero sin embargo sí se puede crear tuplas que contengan
objetos mutables, como las listas.

A pesar de que las tuplas puedan parecerse a las listas, frecuentemente


se utilizan en distintas situaciones y para distintos propósitos. Las tuplas
son inmutable y normalmente contienen una secuencia heterogénea de

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

elementos inmutable que son accedidos al desempaquetar o indizar. Las


listas son mutables, y sus elementos son normalmente homogéneos y se
acceden iterando a la lista.

Un problema particular es la construcción de tuplas que contengan 0 o 1


ítem: la sintaxis presenta algunas peculiaridades para estos casos. Las
tuplas vacías se construyen mediante un par de paréntesis vacío; una
tupla con un ítem se construye poniendo una coma a continuación del
valor (no alcanza con encerrar un único valor entre paréntesis).

Trabajando con tuplas


Creación de Tuplas

Puedes crear una tupla utilizando paréntesis o simplemente separando


los elementos por comas. Aquí tienes ejemplos de ambas formas:

Acceso a Elementos de una Tupla

Puedes acceder a los elementos de una tupla mediante índices, al igual


que con las listas. Los índices comienzan en 0.

Iteración a través de una Tupla

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Puedes recorrer una tupla utilizando bucles for, de la misma manera que
lo harías con una lista.

Longitud de una Tupla

Puedes obtener la longitud de una tupla utilizando la función len().

Tuplas Inmutables

Una vez que una tupla se crea, no puedes modificar sus elementos.
Intentar hacerlo generará un error.

Conversiones entre Listas y Tuplas

Puedes convertir una lista en una tupla y viceversa utilizando las


funciones list() y tuple().

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Empaquetado y desempaquetado de Tuplas


Si a una variable se le asigna una secuencia de valores separados por
comas, el valor de esa variable será la tupla formada por todos los
valores asignados. A esta operación se la denomina empaquetado de
tuplas.

El empaquetado y desempaquetado de tuplas es una característica


interesante de Python que permite asignar múltiples valores a una tupla
o extraer múltiples valores de una tupla en una sola operación. Esta
característica se utiliza para intercambiar valores de variables, devolver
múltiples valores desde funciones y realizar operaciones relacionadas
con tuplas.

Empaquetado de Tuplas

Empaquetar una tupla significa crear una tupla que contiene múltiples
valores, separados por comas. Este proceso se realiza cuando asignas
varios valores a una sola variable.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Desempaquetado de Tuplas

Desempaquetar una tupla implica asignar sus elementos a variables


individuales. Puedes desempaquetar una tupla utilizando una asignación
que coincide con la estructura de la tupla.

Ahora, x contendrá el valor 1, y contendrá el valor 2, z contendrá el valor


3 y mensaje contendrá la cadena "Hola".

Intercambio de Valores de Variables

El desempaquetado de tuplas es especialmente útil cuando deseas


intercambiar los valores de dos variables sin necesidad de una variable
temporal. Esto se puede lograr de la siguiente manera:

Devolución de Múltiples Valores desde una Función

Una de las aplicaciones más comunes del empaquetado y


desempaquetado de tuplas es devolver múltiples valores desde una

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

función. Puedes empaquetar los valores en una tupla y devolver la tupla,


y luego desempaquetarla cuando recibes el resultado de la función.

Ejemplo:

Diccionarios
Un diccionario es una estructura de datos y un tipo de dato en Python
con características especiales que nos permite almacenar cualquier tipo
de valor como enteros, cadenas, listas e incluso otras funciones. Estos
diccionarios nos permiten además identificar cada elemento por una
clave (Key).

Trabajando con diccionarios


Creación de un Diccionario

Puedes crear un diccionario utilizando llaves {} y especificando pares


clave-valor separados por dos puntos

Ejemplo:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Acceso a Elementos de un Diccionario

Puedes acceder a un valor en un diccionario utilizando la clave


correspondiente:

Si la clave no existe en el diccionario, generará un error. Para evitar esto,


puedes usar el método get() que permite proporcionar un valor
predeterminado en caso de que la clave no exista:

Modificación y Agregado de Elementos

Puedes modificar el valor asociado con una clave existente o agregar


nuevas claves y valores al diccionario:

Eliminación de Elementos

Puedes eliminar una clave y su valor asociado de un diccionario


utilizando el operador del o el método pop():

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Métodos de los diccionarios


Los diccionarios en Python son objetos que tienen varios métodos
incorporados que permiten realizar diversas operaciones en los datos
almacenados en el diccionario.

● get(clave, valor_predeterminado)

Este método devuelve el valor asociado con una clave dada, si existe
en el diccionario. Si la clave no existe, en lugar de generar un error,
devuelve el valor predeterminado especificado.

● keys():

Este método devuelve una vista de todas las claves en el diccionario.


La vista se puede convertir en una lista si es necesario.

● values():
Este método devuelve una vista de todos los valores en el
diccionario, que también se puede convertir en una lista.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

● items():
Este método devuelve una vista de pares clave-valor en el
diccionario. Cada par es una tupla con dos elementos (clave, valor).

● pop(clave, valor_predeterminado):
Este método elimina la clave y el valor asociado con la clave del
diccionario. Puedes proporcionar un valor predeterminado que se
devolverá si la clave no existe en el diccionario.

● update(otro_diccionario):

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Este método actualiza el diccionario actual agregando pares


clave-valor del otro diccionario. Si una clave ya existe en el
diccionario actual, su valor se actualiza.

● clear():
Este método elimina todos los elementos del diccionario, dejándolo
vacío.

● copy():
Este método crea una copia superficial del diccionario. Modificar la
copia no afectará al diccionario original y viceversa.

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Iteración de un diccionario
Puedes recorrer un diccionario utilizando bucles for para acceder a sus
claves o valores, o ambas. Por ejemplo:

Claves
Las claves en un diccionario de Python son elementos únicos que se
utilizan para identificar y acceder a los valores asociados en el
diccionario.

Algunas de sus características:

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Referencias
● Docs – Python: datetime — Tipos básicos de fecha y hora
https://docs.python.org/es/3/library/datetime.html

● FreeCodeCamp: Métodos de string de python explicados con


ejemplos.
https://www.freecodecamp.org/espanol/news/metodos-de-string-de
-python-explicados-con-ejemplo/

● Código Facilito: fechas con python.


https://codigofacilito.com/articulos/fechas-python

● Uniwebsidad: Listas y cadenas


https://uniwebsidad.com/libros/algoritmos-python/capitulo-7/listas-
y-cadenas

● Cartagena99: Introducción a matrices


https://www.cartagena99.com/recursos/alumnos/apuntes/introducci
on%20matrices.pdf

● Relopezbriega: Expresiones Regulares con Python


https://relopezbriega.github.io/blog/2015/07/19/expresiones-regula
res-con-python/

● Concepython: pilas y colas


http://conocepython.blogspot.com/p/pilas-y-colas.html

Módulo
Fundamentos de Programación Python
Aprendizaje Esperado
Estructuras de datos en Python

Módulo
Fundamentos de Programación Python

También podría gustarte