Clase 9: Ejercicios de Estructuras de Datos (Tuplas, Diccionarios y Sets)¶
En esta clase se plantean ejercicios de las estructuras de datos vistas anteriormente: sets, diccionarios y tuplas.
1. Sistema de evaluación cruzada entre estudiantes¶
Solicita a cada estudiante que califique a otros compañeros con una nota del 1 al 10. Guarda los resultados en un diccionario anidado. Luego:
- Calcula el promedio recibido por cada estudiante.
- Muestra quién fue el estudiante mejor evaluado.
Ejemplo:
{
"Ana": {"Luis": 9, "Carlos": 8},
"Luis": {"Ana": 10, "Carlos": 9},
"Carlos": {"Ana": 7, "Luis": 8}
}
2. Análisis de hábitos de lectura¶
Recoge información sobre libros leídos por un grupo de personas (como sets). Luego:
- Muestra qué libros han leído todos.
- Muestra qué libros son exclusivos de cada persona.
- Construye un set con todos los libros leídos sin repetir.
Ejemplo:
{
"Ana": {"1984", "El Principito", "Dune"},
"Luis": {"Dune", "1984", "It"},
"Carlos": {"1984", "Dune"}
}
3. Base de datos de empleados por departamento¶
Crea un diccionario donde la clave sea el nombre del departamento y el valor sea una lista de tuplas con información de cada empleado (nombre, edad, salario). Permite:
- Agregar un nuevo empleado.
- Calcular el promedio salarial por departamento.
- Encontrar al empleado con el salario más alto.
Ejemplo:
4. Inventario de productos con múltiples almacenes¶
Gestiona un inventario que usa un diccionario anidado:
inventario = {
"producto1": {"almacen1": 20, "almacen2": 15},
"producto2": {"almacen1": 5, "almacen2": 0}
}
Permite consultar:
- Stock total de un producto.
- Almacenes donde está agotado.
- Productos con stock cero en todos los almacenes.
5. Historial de navegación web¶
Guarda en una lista de tuplas las visitas a sitios web en formato (usuario, sitio, fecha)
. Luego:
- Crea un diccionario con claves usuario y valores como sets de sitios visitados.
- Muestra los sitios comunes entre todos los usuarios.
Ejemplo:
[
("Ana", "wikipedia.org", "2024-05-01"),
("Ana", "openai.com", "2024-05-02"),
("Luis", "openai.com", "2024-05-01"),
("Luis", "wikipedia.org", "2024-05-03")
]
6. Resumen de encuestas¶
Simula una encuesta donde cada persona puede elegir múltiples respuestas (almacenadas como sets). Luego analiza:
- La opción más popular.
- Qué combinación de opciones fue más frecuente.
- Cuántas respuestas únicas hubo en total.
Ejemplo:
7. Agenda semanal de un salón de clases¶
Crea una estructura donde cada día de la semana es una clave y su valor es una lista de tuplas con eventos (nombre_evento, hora)
. Permite:
- Buscar eventos por nombre en toda la semana.
- Ver el evento más temprano de un día específico.
- Detectar si hay conflictos horarios (mismo horario, mismo día).
Ejemplo:
8. Catálogo de cursos con prerequisitos¶
Diseña un sistema donde cada curso (clave del diccionario) tiene como valor un set de cursos prerequisito. Luego:
- Detecta si hay prerequisitos cíclicos.
- Lista todos los cursos que no requieren ningún prerequisito.
Ejemplo:
9. Análisis de perfiles de usuario en una red social¶
Cada usuario tiene una tupla con su edad, ciudad y una lista de intereses. Almacena todos los usuarios en un diccionario. Luego:
- Muestra los intereses más comunes.
- Filtra usuarios por ciudad e interés.
- Agrupa usuarios por rango de edad usando sets.
Ejemplo:
{
"Ana": (22, "San José", ["lectura", "música"]),
"Luis": (28, "Cartago", ["lectura", "deportes"])
}
10. Sistema de control de asistencia con sets y diccionarios¶
Cada clase contiene un set de estudiantes presentes. Almacena la asistencia en un diccionario con la fecha como clave. Luego:
- Muestra el total de clases asistidas por cada estudiante.
- Identifica a quienes no asistieron nunca.
- Compara la asistencia entre dos fechas.
Ejemplo: