Café y Código

8. Diccionarios: El Archivador Maestro Clave-Valor 🗃️

1. Estructura y Sintaxis

Un diccionario es una colección no ordenada y mutable que asocia una clave única a un valor. Se definen utilizando llaves { } y separando las claves de los valores mediante dos puntos (:).

usuario_base.py
PYTHON
1 # Creación de un diccionario representativo de un usuario
2 usuario = {
3 "nombre": "Benjamín",
4 "edad": 28,
5 "cargo": "Programador",
6 "activo": True
7 }
8
9 # 1. Leer un valor mediante su clave
10 print(usuario["nombre"]) # Imprime: Benjamín

2. Lectura Segura con .get()

Si intentas acceder a una clave que no existe usando los corchetes tradicionales (por ejemplo, usuario["pais"]), Python lanzará un error KeyError que detendrá tu programa.

Para evitar caídas del servidor, la mejor práctica profesional es usar el método .get(), el cual acepta un segundo parámetro opcional como valor de retorno por defecto si la clave no es hallada:

lectura_segura.py
PYTHON
1 # Intento directo peligroso
2 # pais = usuario["pais"] # Lanzaría KeyError si "pais" no está definido
3
4 # Uso seguro de .get()
5 pais_seguro = usuario.get("pais") # Retorna None sin lanzar error
6 pais_con_defecto = usuario.get("pais", "Chile") # Retorna "Chile" si no existe la clave

3. Modificar, Agregar y Eliminar Elementos

Puedes actualizar valores existentes, añadir nuevas claves al vuelo o remover registros específicos usando funciones integradas.

crud_diccionarios.py
PYTHON
1 # Agregar o actualizar
2 usuario["web"] = "cafeycodigo.com" # Añade una nueva clave
3 usuario["edad"] = 29 # Modifica un valor existente
4
5 # Modificar múltiples campos al mismo tiempo con .update()
6 usuario.update({
7 "cargo": "Senior Developer",
8 "ciudad": "Santiago"
9 })
10
11 # --- Métodos de Eliminación ---
12
13 # 1. Usando pop() para extraer y remover (puedes proveer un valor por defecto)
14 rol = usuario.pop("cargo", "No definido") # Elimina la clave y retorna "Senior Developer"
15
16 # 2. Usando del para borrar directamente
17 del usuario["activo"] # Elimina la clave 'activo' sin retornar valor
18
19 # 3. Eliminar el último par insertado con popitem()
20 ultima_clave, ultimo_valor = usuario.popitem() # Remueve y retorna (clave, valor) de la última inserción

4. Métodos de Iteración (Recorrer un Diccionario)

Python provee tres métodos clave para recorrer y examinar la información de un archivador:

  • .keys(): Obtiene solo las claves del diccionario.
  • .values(): Obtiene solo los valores almacenados.
  • .items(): Obtiene tuplas de (clave, valor), ideal para recorrer con bucles for.
iteraciones.py
PYTHON
1 precios = {
2 "espresso": 2.50,
3 "americano": 2.80,
4 "latte": 3.20
5 }
6
7 # Iterar solo por las claves
8 for cafe in precios.keys():
9 print(f"Café disponible: {cafe}")
10
11 # Iterar solo por los valores
12 for precio in precios.values():
13 print(f"Precio: ${precio}")
14
15 # Iterar por clave y valor al mismo tiempo (Práctica recomendada)
16 for cafe, precio in precios.items():
17 print(f"El {cafe} cuesta ${precio} USD")

☕ Desafío: El Menú de Café y Código

Crea un diccionario llamado inventario con tres tipos de café y sus cantidades en stock (números enteros). Luego realiza las siguientes operaciones:
1. Añade un nuevo café "irlandes" con 8 unidades.
2. Vende 2 unidades de la primera bebida (resta 2 a su valor).
3. Usa .get() para consultar el stock de "capuccino", y si no existe muestra 0.
4. Recorre el inventario e imprime cada producto con su stock total.

👁️ Ver solución sugerida
Solución
PYTHON
1 # 1. Crear e insertar
2 inventario = {
3 "espresso": 15,
4 "americano": 20,
5 "latte": 12
6 }
7 inventario["irlandes"] = 8
8
9 # 2. Vender (restar stock)
10 inventario["espresso"] -= 2
11
12 # 3. Consulta segura
13 stock_capuccino = inventario.get("capuccino", 0)
14 print(f"Stock de Capuccino: {stock_capuccino}")
15
16 # 4. Iterar e imprimir
17 print("\n--- Inventario Final ---")
18 for cafe, stock in inventario.items():
19 print(f"• {cafe.capitalize()}: {stock} unidades")

Prueba sobre Diccionarios

Responde las preguntas del cuestionario interactivo para validar tu conocimiento sobre claves, valores e iteración segura.

Dato curioso: Primera versión pública en 1991; Guido van Rossum. Wikipedia

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.