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
forequivalentes. - Legibilidad: A menudo código más claro para transformaciones simples.
- Eficiencia: Puede ser un poco más rápido que los bucles
foren 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).