Sustituye tus bucles de construcción por comprensiones expresivas, para transformar, filtrar y reindexar tus datos.
Abrir esta lección en KodokonUna comprensión de lista condensa el patrón más habitual de la programación: construir una lista transformando o filtrando una secuencia. La sintaxis se lee como una frase: [expression for element in sequence if condition]. Mismo resultado que un bucle con append, en una sola línea declarativa que cualquier desarrollador de Python reconoce al instante.
prices = [12.0, 49.9, 5.5, 199.0]
with_tax = [round(p * 1.2, 2) for p in prices]
cheap = [p for p in prices if p < 50]
print(with_tax) # [14.4, 59.88, 6.6, 238.8]
print(cheap) # [12.0, 49.9, 5.5]La comprensión de diccionario sigue la misma lógica con la sintaxis {key: value for ...}. Un caso de uso muy habitual en los proyectos: reindexar una lista de objetos por su identificador, para obtener después búsquedas instantáneas en lugar de recorrer la lista cada vez que necesitas algo.
users = [
{"id": 7, "name": "Alice"},
{"id": 12, "name": "Bruno"},
{"id": 31, "name": "Chloe"},
]
by_id = {u["id"]: u["name"] for u in users}
print(by_id[12]) # Bruno
print(31 in by_id) # TrueDos posiciones para if, dos papeles diferentes. Colocado después del for, filtra: los elementos rechazados no aparecen en el resultado. Colocado antes del for, como expresión condicional (a if condition else b), elige un valor para cada elemento: la lista conserva entonces la misma longitud que la fuente.
scores = [45, 82, 67, 91]
labels = ["pass" if s >= 60 else "fail" for s in scores]
print(labels) # ['fail', 'pass', 'pass', 'pass']