Aquí llega una de las características más queridas de Python: las COMPREHENSIONS. Son una forma concisa y
elegante de crear una lista (o diccionario, o set) transformando o filtrando otra —lo que con un bucle
tomaría varias líneas, aquí cabe en una, y se lee mejor—. Dominar las comprehensions es el salto del código
"que funciona" al código PYTHÓNICO. Hoy las aprendes y las vas a usar para siempre.
La receta en una línea
List comprehension: transformar
Compara el bucle tradicional con la comprehension —hacen lo mismo—:
La sintaxis es [expresion for elemento in secuencia]: se lee "la EXPRESIÓN, por cada ELEMENTO en la
SECUENCIA". [g * 1.19 for g in gastos] crea una lista nueva con cada gasto multiplicado por 1.19. Hace
exactamente lo mismo que el bucle con append, pero en una línea que expresa la intención directamente.
No modifica la lista original: crea una NUEVA.
Con condición: filtrar
Comprehensions de diccionario y set
¿Qué produce [g * 2 for g in [1, 2, 3, 4] if g % 2 == 0] y dónde va el if para filtrar vs para transformar?
Mini-reto
Procesa gastos de Mi Bolsillo con comprehensions: 1) dada gastos = [4000, 2800, 18000, 5000, 1200], crea
con una comprehension una lista con cada gasto + su IVA (× 1.19); 2) crea otra con SOLO los gastos mayores a
3000 (filtro con if al final); 3) crea una lista de etiquetas "caro"/"barato" con el ternario (if/else
al inicio); 4) bonus: una dict comprehension {gasto: gasto * 1.19 for ...} que mapee cada gasto a su valor
con IVA. Compara cuánto más corto es que con bucles.
Qué sigue
¡Módulo 2 casi cerrado! Dominas el control de flujo (decisiones, bucles) y todas las colecciones (listas,
tuplas, sets, diccionarios, comprehensions). El reto del módulo los junta en un análisis de gastos de verdad:
una lista de gastos, filtros, totales por categoría y comprehensions trabajando en equipo. Después, el
módulo 3 traerá las FUNCIONES —empaquetar lógica reutilizable—.