PyQuiz 37 - Dict comprehension en Python | Quiz interactivo

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

  1. {x: x**2 for x in range(4)} — Se inicia la comprensión. range(4) produce 0, 1, 2, 3.
  2. Iteración: x=0 → par 0: 0**2 = 0. x=1 → par 1: 1**2 = 1. x=2 → par 2: 2**2 = 4. x=3 → par 3: 3**2 = 9.
  3. cuadrados = {0: 0, 1: 1, 2: 4, 3: 9} — El diccionario completo queda asignado a cuadrados.
  4. cuadrados[3] — Se accede a la clave 3 del diccionario. El valor asociado es 9.
  5. print(cuadrados[3]) — Se imprime 9.

📥 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.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir