Sesión 11: Diccionarios, organización clave-valor y consulta de datos¶
Objetivo¶
Modelar información mediante pares clave-valor para registrar y consultar datos de forma directa.
Producto de la sesión¶
Elabora un programa que use diccionarios para registrar, consultar o actualizar información mostrando resultados claros.
Resultado esperado¶
Construye un programa que use diccionarios para guardar, consultar y actualizar datos, organizando la solución en entrada, proceso y salida.
Alcance de la sesión¶
- Uso de diccionarios para representar información mediante claves y valores.
- Aplicación de registro, consulta y actualización de datos.
- Resolución de ejercicios guiados y práctica autónoma.
- Verificación de resultados con casos de prueba.
Base conceptual de la sesión¶
- diccionarios
- claves y valores
- registro de datos
- consulta
- actualización
1. Diccionarios
Concepto Guardan información en pares clave-valor para acceder a ella de forma directa.
Elementos o clasificación Claves únicas con valores asociados.
Criterio de uso Se usan cuando cada dato puede identificarse mediante una clave única, como código, nombre o identificador.
Ejemplo de aplicación
producto = {"nombre": "cuaderno", "precio": 5.5}
2. Claves Y Valores
Concepto Una clave identifica un dato y el valor contiene la información asociada. Esta relación permite recuperar información sin buscar posición por posición.
Elementos o clasificación Claves textuales, numéricas o códigos; valores simples o compuestos.
Criterio de uso La clave identifica y el valor contiene la información asociada. La clave debe ser estable para que la consulta sea confiable.
Ejemplo de aplicación
productos["cuaderno"] = 5.5
3. Registro De Datos
Concepto Es la acción de almacenar información nueva en una estructura, cuidando que cada dato quede asociado a un identificador o posición clara.
Elementos o clasificación Registro nuevo, reemplazo de registro y registro validado.
Criterio de uso Registrar datos implica decidir qué clave se usará, qué valor se guardará y cómo se tratarán claves repetidas.
Ejemplo de aplicación
productos[nombre] = precio
4. Consulta
Concepto Es la recuperación de un dato almacenado para mostrarlo, compararlo, actualizarlo o usarlo en un cálculo posterior.
Elementos o clasificación Consulta directa, consulta condicionada y consulta no encontrada.
Criterio de uso Antes de consultar una clave conviene verificar si existe para evitar errores y ofrecer una respuesta clara.
Ejemplo de aplicación
if nombre in productos:
print(productos[nombre])
5. Actualización
Concepto Es la modificación controlada de un dato ya registrado sin perder el resto de la información almacenada.
Elementos o clasificación Actualización de valor, incremento de cantidad y reemplazo de información.
Criterio de uso Actualizar significa cambiar un valor asociado a una clave ya existente o crear una nueva entrada cuando el problema lo permite.
Ejemplo de aplicación
productos["lapiz"] = 1.5
Síntesis de la sesión Para resolver ejercicios, no basta con escribir instrucciones en Python. Es necesario reconocer los datos, nombrarlos correctamente, elegir operaciones o estructuras de control apropiadas y comprobar el resultado con casos de prueba.
| Aspecto | Pregunta guía |
|---|---|
| Entrada | ¿Qué datos necesita recibir el programa? |
| Proceso | ¿Qué cálculos, decisiones o repeticiones transforman los datos? |
| Salida | ¿Qué resultado debe mostrarse y con qué formato? |
| Prueba | ¿Con qué casos se demuestra que la solución funciona? |
Actividad práctica¶
La sesión se desarrolla con exploración inicial, ejercicios guiados, ejercicios de aplicación y una tarea tipo competencia.
Arquitectura¶
Entrada -> Proceso -> Salida
- Entrada: claves, valores o registros que se almacenarán o consultarán.
- Proceso: registro, búsqueda, consulta o actualización de datos mediante diccionarios.
- Salida: datos consultados, diccionario actualizado u otro resultado solicitado.
Mini laboratorio¶
Explora cómo registrar, consultar y actualizar valores en una estructura clave-valor.
producto = {'nombre': 'cuaderno', 'precio': 5.5}
print(producto['nombre'])
producto['precio'] = 6.0
print(producto)
Ejercicio 1: Notas por estudiante¶
Registraremos notas por estudiante usando un diccionario y consultaremos una clave específica.
Resolución guiada
- Comprender: explica con una oración completa cuál es el resultado que debe obtener el programa.
- Entradas: enumera cada dato de entrada e indica su tipo de dato esperado.
- Procesos:
- describe la operación, condición, recorrido o función principal que usarás para resolver el problema
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: especifica la salida esperada y el formato con que se debe mostrar.
- Pruebas:
- caso normal: usa datos habituales para comprobar que el resultado esperado se cumpla
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué sucede con una entrada vacía, inválida o fuera de rango
- Código:
notas = {
'Ana': 18,
'Luis': 14,
'Marta': 16
}
print('Nota de Luis:', notas['Luis'])
notas['Luis'] = 15
print('Diccionario actualizado:', notas)
Ejercicio 2: Consulta de promedios¶
Crea un diccionario con tres estudiantes y sus promedios. Luego consulta uno por nombre.
Resolución guiada
- Comprender: el programa debe resolver este problema: Crea un diccionario con tres estudiantes y sus promedios. Luego consulta uno por nombre
- Entradas: define las claves y valores
- Procesos:
- decide cómo leerás el nombre a consultar
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- prueba con una clave existente y otra inexistente
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
promedios = {'Ana': 16, 'Luis': 14, 'Marta': 18}
nombre = input('Nombre a consultar: ')
if nombre in promedios:
print('Promedio:', promedios[nombre])
else:
print('Estudiante no encontrado')
Ejercicio 3: Actualización de precios¶
Construye un diccionario de productos y actualiza el precio de uno de ellos.
Resolución guiada
- Comprender: el programa debe resolver este problema: Construye un diccionario de productos y actualiza el precio de uno de ellos
- Entradas: define los productos iniciales
- Procesos:
- identifica la clave que se modificará
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el diccionario antes y después del cambio
- Pruebas:
- caso normal: usa datos habituales para comprobar que el resultado principal sea correcto
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
productos = {'cuaderno': 5.5, 'lapiz': 1.2, 'mochila': 45.0}
print('Antes:', productos)
productos['lapiz'] = 1.5
print('Después:', productos)
Ejercicio 4: Lista de productos con filtro¶
Crea una lista de diccionarios para registrar productos y muestra solo los que superan un precio indicado.
Resolución guiada
- Comprender: cada producto tiene datos con nombre y todos los productos deben guardarse juntos.
- Entradas: una lista de productos, donde cada producto es un diccionario con
nombreyprecio. - Procesos:
- recorre la lista con
for - accede a cada precio usando la clave
precio - muestra el nombre cuando el precio supera el límite
- Salidas: productos que cumplen la condición.
- Pruebas: cambia el límite y agrega un producto nuevo a la lista.
- Código:
productos = [
{'nombre': 'Cuaderno', 'precio': 5.5},
{'nombre': 'Lapicero', 'precio': 1.2},
{'nombre': 'Mochila', 'precio': 80.0}
]
limite = float(input('Precio mínimo: '))
for producto in productos:
if producto['precio'] > limite:
print(producto['nombre'], producto['precio'])
Ejercicio 5: Consulta y actualización de producto¶
Construye un diccionario con productos y precios. Luego consulta un producto y actualiza su valor si existe.
Resolución guiada
- Comprender: redacta con tus palabras qué debe resolver la tarea.
- Entradas: define qué datos ingresan y el tipo que tendrán.
- Procesos:
- describe la estrategia, fórmula, condición, estructura o algoritmo que piensas aplicar
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: indica con claridad qué resultado debe mostrar o registrar la solución.
- Pruebas:
- caso normal: usa datos habituales para comprobar que la solución funcione
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
productos = {
'cuaderno': 5.5,
'lapiz': 1.2,
'mochila': 45.0
}
nombre = input('Producto a consultar: ')
if nombre in productos:
print('Precio actual:', productos[nombre])
nuevo_precio = float(input('Nuevo precio: '))
productos[nombre] = nuevo_precio
print('Diccionario actualizado:', productos)
else:
print('Producto no encontrado')
Aprendizaje autónomo¶
Desarrolle el producto de la sesión resolviendo una o más de las siguientes actividades mediante un programa con diccionarios claramente identificables.
1 Registra datos académicos en un diccionario y consulta una clave específica.
# Actividad 1
2 Actualiza un valor existente y agrega una nueva clave en un mismo diccionario.
# Actividad 2
3 Prueba qué ocurre cuando consultas una clave inexistente y define cómo responder con un mensaje claro.
# Actividad 3
Evaluación del producto de la sesión¶
Lista de cotejo para revisar el producto elaborado por el estudiante:
- Usa claves adecuadas para identificar cada dato del problema.
- Registra, consulta o actualiza información con diccionarios de manera correcta.
- Controla adecuadamente las claves existentes y no existentes cuando corresponde.
- Representa varios registros usando una lista de diccionarios cuando el problema lo requiere.
- Presenta resultados claros, ordenados y correctos según lo solicitado.
- Verifica el programa con casos de prueba antes de entregarlo.
- Entrega la evidencia del trabajo realizado.