🐍💡Comprehensions en Python
🔍 ¿Qué son?
Forma compacta, legible y elegante de crear listas, diccionarios o conjuntos en una sola línea.
📦 En una comprehension puedes combinar:
- 🔁 Iteración → recorrer elementos
- 🔧 Mapeo → transformar valores
- 🚫 Filtro (if) → incluir o excluir
Ventajas principales:
✅ Mismo resultado que un for clásico
✅ Menos código y más claridad
✅ Condiciones integradas directamente
🧠 Estructura general
[expresión for elemento in iterable if condición]
🔹 Expresión: qué quieres devolver
🔹 Iteración: recorre los datos
🔹 Filtro: opcional, decide qué incluir
🔄 De un for tradicional a una comprehension
🧩 Código clásico
def extract_titles_traditional(articles):
titles = []
for article in articles:
titles.append(article["title"])
return titles
⚡ Versión pythónica
def extract_titles(articles):
return [a["title"] for a in articles]
➡️ Mismo resultado.
➡️ Menos ruido visual.
➡️ Intención clara: obtener títulos.
🚀 Beneficios de la sintaxis compacta
✨ Menos errores por variables intermedias
🧩 Código más expresivo: “qué hago”, no “cómo lo hago”
🧹 Compatible con herramientas como Ruff (mejor legibilidad automática)
🔎 Filtros con if dentro de la comprehension
def extract_titles_long(articles):
return [a["title"] for a in articles if len(a["title"]) > 10]
🎯 Solo incluye títulos con más de 10 caracteres.
🧠 El if siempre va al final.
🧱 Crear diccionarios (dict comprehension)
🎯 Ideal cuando quieres pares clave → valor.
long_desc_by_title = {
a["title"]: a["description"]
for a in articles
if len(a["description"]) > 20
}
💬 Resultado:
Diccionario con títulos y descripciones largas.
📏 Si el filtro es muy estricto, puedes ajustar el número:
by_title_min5 = {
a["title"]: a["description"]
for a in articles
if len(a["description"]) > 5
}