01 Conceptos
02 Métodos
03 Iteración
04 Anidados
05 🔴 Misiones
⏳ Inicializando motor Python…
Unidad 3 · Python · Lesson 1 de 4

Estructuras de Datos:
Diccionarios

Aprendé a guardar datos mediante pares Clave-Valor. Mucho más potente y ordenado que usar solo listas sueltas.

🎬 Introducción en video

▸ Ceibal STEM — Diccionarios en Python

📦 ¿Qué es un Diccionario?

Un diccionario, al igual que una lista, es mutable y dinámico (puede crecer). Sin embargo, se diferencian principalmente en cómo accedemos a sus elementos: en una lista usamos índices (posiciones numéricas), mientras que en un diccionario usamos claves.

🏷️
Pares Clave-Valor (Key-Value):
Pensá en el diccionario como un archivero. La Clave es la etiqueta de la carpeta (ej. "Juan"), y el Valor es lo que hay adentro de esa carpeta (ej. 30).
# Crear un diccionario de edades utilizando llaves {}
edades = {
    "Juan": 30,
    "Maria": 25,
    "Carlos": 28
}

# Para acceder al valor, usamos la clave entre corchetes:
print(edades["Maria"])  # Salida: 25
🔒
Regla de oro: Aunque los valores pueden ser lo que vos quieras (listas, otros diccionarios, enteros), las claves deben ser de un tipo inmutable (hashable). ¡Las listas no pueden usarse como claves, pero los strings (textos) y los números sí!
🎯 Comprobación 1 — Conceptual
¿Cuál es la principal diferencia a la hora de acceder a un elemento en una lista vs. en un diccionario?
Correcto. Las listas usan posiciones ordenadas (0, 1, 2...), mientras que los diccionarios mapean datos mediante etiquetas o claves que vos definís.
🎯 Comprobación 2 — Claves válidas
Según la regla de "claves inmutables", ¿cuál de las siguientes opciones NO puede usarse como clave en un diccionario?
Correcto. Como las listas pueden mutar (cambiar en el tiempo agregando o quitando elementos), Python no confía en ellas para usarlas como etiquetas fijas o "claves".
Operaciones Clave

Métodos Integrados

Modificá, accedé y eliminá datos de tu diccionario como un pro.

⚙️ Modificar y Eliminar (Básico)

# Si la clave ya existe, se actualiza el valor. Si no existe, se crea.
edades["Ana"] = 22       # Agrega un nuevo par clave-valor
edades["Carlos"] = 29    # Modifica el valor existente de Carlos

# Eliminar un elemento usando la palabra clave 'del'
del edades["Juan"]

🛠️ Métodos Avanzados de Diccionarios

MétodoDescripciónEjemplo
.get(<key>)Busca la clave y devuelve su valor. Si no existe, devuelve None en lugar de dar error.peliculas.get("Matrix")
.keys()Devuelve una vista de todas las claves.peliculas.keys()
.values()Devuelve una vista de todos los valores.peliculas.values()
.items()Devuelve pares (clave, valor) en formato tupla. Ideal para iterar.peliculas.items()
.pop(<key>)Elimina la clave indicada y devuelve su valor.peliculas.pop("Pulp Fiction")

💡 Flashcards — Memoria Visual

.clear()

hover para ver

Vacía el diccionario por completo borrando todos sus elementos.

.popitem()

hover para ver

Elimina y devuelve el último par clave-valor agregado (como tupla).

.update({k:v})

hover para ver

Fusiona el diccionario con otro, agregando múltiples elementos a la vez.

🔬 Comprobación 3 — Evitando errores con .get()
Copiá y ejecutá el siguiente código en la Consola Libre. ¿Qué diferencia notás entre acceder con corchetes y usar .get()?
▸ Código para probar
usuario = {"nombre": "Ana", "rol": "Admin"} print("Con get:", usuario.get("edad")) print("Con corchetes:", usuario["edad"])
Correcto. Usar .get() es una excelente práctica cuando no estás 100% seguro de que la clave exista, porque evita que tu programa se cuelgue con un error.
Lesson 2 de 4

Recorridas de Diccionarios

Combinando el bucle for con las herramientas de los diccionarios.

🔄 Iterar con el bucle for

Python nos da herramientas geniales para recorrer diccionarios. Dependiendo de lo que necesites (claves, valores, o ambos), usaremos un método diferente.

1️⃣
Recorrer Claves y Valores al mismo tiempo (.items):
Es la forma más común. El bucle necesita dos variables temporales para desarmar la tupla en cada vuelta.
edades = {"Ana": 22, "Luis": 30, "Pedro": 28}

for clave, valor in edades.items():
    print(f"{clave} tiene {valor} años")
2️⃣
Recorrer SOLO las claves o SOLO los valores (.keys / .values):
Si solo te interesa una parte de la información.
# Imprime: Ana, Luis, Pedro
for nombre in edades.keys():
    print(nombre)

# Imprime: 22, 30, 28
for edad in edades.values():
    print(edad)
💻 Tu turno

Inventario con for

Modificá el bucle for usando el método adecuado para que imprima tanto la clave como el valor del inventario.

🎯 Comprobación 4 — Sintaxis de iteración
Si usás for x, y in mi_dicc.items():, ¿qué representan las variables x e y en cada vuelta?
Correcto. El método .items() devuelve pares, por lo que las dos variables desempacan ese par automáticamente: la primera es la etiqueta y la segunda su contenido.
Lesson 3 de 4

Estructuras Anidadas

Manejá bases de datos complejas combinando listas y diccionarios.

🗂️ Listas adentro de Diccionarios

Asociar múltiples valores a una sola clave. Podés usar todos los métodos de listas (como .append() o [índice]) entrando primero por la clave.

mi_diccionario = {
    "frutas": ["manzana", "plátano", "naranja"],
    "colores": ["rojo", "verde", "naranja"]
}

print(mi_diccionario["frutas"][2])    # Salida: naranja
mi_diccionario["frutas"].append("kiwi")

🗃️ Diccionarios adentro de Listas

Estructura clásica para manejar bases de datos de usuarios o registros. Es una lista, y cada "ítem" de la lista es el archivo completo (diccionario) de una persona.

lista_usuarios = [
    {"nombre": "Juan", "edad": 30},
    {"nombre": "Maria", "edad": 25}
]

# Primero entramos a la lista por índice, luego al dicc por clave:
print(lista_usuarios[1]["nombre"])  # Salida: Maria

🪆 Diccionarios Anidados (Matrioshkas)

usuario = {
    "nombre": "Carlos",
    "direccion": {
        "calle": "Av. Siempre Viva",
        "numero": 742,
        "ciudad": "Springfield"
    }
}
# Acceso en cadena:
print(usuario["direccion"]["ciudad"]) # Salida: Springfield
🎯 Comprobación 5 — Acceso Complejo
Con este diccionario: escuela = {"clases": [{"aula": 1, "materia": "DB"}, {"aula": 2, "materia": "Prog"}]}. ¿Cómo accedés al valor "Prog"?
Correcto. "clases" devuelve una lista. Luego usás el índice [1] para agarrar el segundo diccionario de esa lista. Finalmente pedís la clave ["materia"].
Lesson 4 de 4 · Práctica Final

🔴 Misiones
Hacker: Base de Datos

Es hora de armar tu propio clon de Netflix usando diccionarios interactivos.

🎬 Practicando en el IDE

▸ Ceibal STEM — Ejercicio integrador
📡 Misión 01

Crear el Diccionario Película

Creá un diccionario llamado pelicula que contenga las siguientes claves: "titulo" (Inception), "director" (Nolan), y "año" (2010). Luego imprimilo.

🔓 Misión 02

Lista de Netflix (Armando la BD)

Ya tenés una lista vacía netflix = []. Creá dos diccionarios de películas distintos y agregalos a la lista usando el método de listas adecuado. Luego imprimí la lista completa.

💥 Misión 03

Recorrer el Catálogo (Motor de búsqueda)

Tenés una lista de diccionarios. Usá un bucle for para recorrer el catálogo e imprimir el mensaje: "La película [titulo] salió en [año]" para cada una.

💻 Consola Libre

Probá cualquier código Python aquí para responder los quizes.