PyQuiz 37 – Dict comprehension en Python

El reto
cuadrados = {x: x**2 for x in range(4)}
print(cuadrados[3])¿Cuál es el resultado?
- a) 9
- b) 3
- c) {3: 9}
Piensa tu respuesta antes de seguir leyendo…
Concepto: Dict comprehension
Una comprensión de diccionario (dict comprehension) permite crear diccionarios de forma concisa usando la sintaxis {clave: valor for variable in iterable}. Es el equivalente de las list comprehensions, pero para diccionarios.
En el ejemplo, {x: x**2 for x in range(4)} itera sobre range(4) (valores 0, 1, 2, 3) y para cada x crea un par clave-valor donde la clave es x y el valor es x**2. El resultado es el diccionario {0: 0, 1: 1, 2: 4, 3: 9}.
# Comprensión de diccionario básica
cuadrados = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
# Con condición
pares = {x: x**2 for x in range(10) if x % 2 == 0}
# {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}Paso a paso
{x: x**2 for x in range(4)}— Se inicia la comprensión.range(4)produce0, 1, 2, 3.- Iteración:
x=0→ par0: 0**2 = 0.x=1→ par1: 1**2 = 1.x=2→ par2: 2**2 = 4.x=3→ par3: 3**2 = 9. cuadrados = {0: 0, 1: 1, 2: 4, 3: 9}— El diccionario completo queda asignado acuadrados.cuadrados[3]— Se accede a la clave3del diccionario. El valor asociado es9.print(cuadrados[3])— Se imprime9.
📥 Llévate el cheatsheet de Python (gratis)
PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.
Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.
Solución
Respuesta correcta: A) 9
El dict es {0: 0, 1: 1, 2: 4, 3: 9}. cuadrados[3] = 9.
Sabías que…
Las comprensiones de diccionario son especialmente útiles para invertir un diccionario (intercambiar claves y valores) o transformar datos estructurados:
# Invertir un diccionario
original = {'a': 1, 'b': 2, 'c': 3}
invertido = {v: k for k, v in original.items()}
print(invertido) # {1: 'a', 2: 'b', 3: 'c'}
# Filtrar y transformar
precios = {'manzana': 1.2, 'pera': 0.8, 'uva': 2.5}
costosos = {fruta: precio for fruta, precio in precios.items() if precio > 1.0}
print(costosos) # {'manzana': 1.2, 'uva': 2.5}Prueba tú mismo
Crea una comprensión de diccionario donde las claves sean los números del 1 al 5 y los valores sean sus cubos (n**3). ¿Cuánto vale resultado[4]?
Más PyQuizzes en elpythonista.com/pyquizzes
Tutorial relacionado: Diccionarios en Python
¿Quieres aprender Python en orden, no a saltos?
Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía
