Lección 08 · 02 Listas, bucles y funciones
Diccionarios: datos con nombre
Una lista guarda datos por posición; un diccionario los guarda por nombre. Es como una ficha: cliente, email, plan.
Claves y valores
cliente = {"nombre": "Lucía", "plan": "pro", "activo": True}
print(cliente["nombre"])
cliente["email"] = "[email protected]" # añade (o cambia) una clave
print(cliente)Si pides una clave que no existe con [], Python lanza KeyError. Con .get() obtienes None (o el valor por defecto que digas):
cliente = {"nombre": "Lucía"}
print(cliente.get("telefono"))
print(cliente.get("telefono", "sin teléfono"))Recorrer
precios = {"básico": 9, "pro": 29, "empresa": 99}
for plan, precio in precios.items():
print(f"{plan}: {precio} €/mes")Contar apariciones
Un uso clásico: cuántas veces sale cada cosa.
categorias = ["ventas", "incidencia", "ventas", "otros", "ventas"]
cuenta = {}
for c in categorias:
cuenta[c] = cuenta.get(c, 0) + 1
print(cuenta)Listas de diccionarios
Así llegan casi todos los datos de una API o de un modelo: una lista de fichas.
pedidos = [{"id": 1, "total": 40}, {"id": 2, "total": 120}]
for p in pedidos:
print(p["id"], p["total"])Completa la ficha
Añade al diccionario ticket la clave "estado" con el valor "abierto" y cambia "prioridad" a "alta". Imprime el diccionario.
¿Atascado? Ver pista
ticket["estado"] = "abierto" y ticket["prioridad"] = "alta".
Cuenta por categoría
Crea el diccionario cuenta con cuántas veces aparece cada categoría de etiquetas. Imprímelo.
¿Atascado? Ver pista
Recorre la lista y en cada vuelta: cuenta[e] = cuenta.get(e, 0) + 1.
Facturación por cliente
Suma el importe de las facturas de cada cliente en el diccionario por_cliente (cliente → total). Imprímelo.
¿Atascado? Ver pista
for f in facturas:
por_cliente[f["cliente"]] = por_cliente.get(f["cliente"], 0) + f["importe"]