Sobes.tech
Junior

¿Qué son las comprensiones de diccionarios en Python?

sobes.tech AI

Respuesta de la IA

El generador de diccionarios (comprensión de diccionarios) es una sintaxis compacta para crear diccionarios basada en un objeto iterable. Permite generar pares "clave: valor" usando expresiones y filtrado opcional.

Sintaxis:

# sintaxis básica
dict = {expresión_clave: expresión_valor for elemento in iterable}

# con condición
dict = {expresión_clave: expresión_valor for elemento in iterable if condición}

Ejemplos:

Crear un diccionario de cuadrados de números del 0 al 4:

# diccionario donde la clave es el número y el valor su cuadrado
squares = {x: x**2 for x in range(5)}
# squares = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

Crear un diccionario solo para números pares:

# diccionario de cuadrados solo de números pares
even_squares = {x: x**2 for x in range(10) if x % 2 == 0}
# even_squares = {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

Invertir claves y valores:

original_dict = {'a': 1, 'b': 2, 'c': 3}
# diccionario con claves y valores invertidos
inverted_dict = {value: key for key, value in original_dict.items()}
# inverted_dict = {1: 'a', 2: 'b', 3: 'c'}

Ventajas:

  • Concisión: Más compacto que los bucles for equivalentes.
  • Legibilidad: A menudo código más claro para transformaciones simples.
  • Eficiencia: Puede ser un poco más rápido que los bucles for en algunos casos.

Desventajas:

  • Legibilidad en casos complejos: Para lógica muy compleja, puede ser menos legible.
  • Ausencia de efectos secundarios: No diseñado para realizar acciones que no sean la creación del diccionario (por ejemplo, imprimir algo).