Dictionary Comprehension con Condicionales en Python
Curso de Python: Comprehensions, Funciones y Manejo de Errores
Contenido del curso
Conjuntos
Comprehensions
- 6

List Comprehension en Python: Sintaxis y Ejemplos Prácticos
08:44 min - 7

Comprensión de Diccionarios en Python: Ejemplos y Aplicaciones
11:57 min - 8

Dictionary Comprehension con Condicionales en Python
Viendo ahora - 9

Playgrounds: Crea una lista usando List Comprehension
- 10

Comparación de Listas, Tuplas y Conjuntos en Python
02:44 min
Funciones
- 11

Funciones en Programación: Creación y Uso en Python
09:47 min - 12

Funciones en Python: Retorno de Valores y Reutilización de Código
10:03 min - 13

Funciones en Python: Retorno múltiple y valores por defecto
06:30 min - 14

Entendiendo el Scope en Python: Variables y Funciones
07:54 min - 15

Refactorización de Juegos en Python: Uso de Funciones
15:10 min - 16

Playgrounds: Tienda de Tecnología
- 17

Funciones Lambda en Python: Sintaxis y Aplicaciones Prácticas
06:39 min - 18

Funciones de Orden Superior en Python: Concepto y Ejemplos Prácticos
08:48 min - 19

Uso de la función map en Python para transformar listas
08:43 min - 20

Transformaciones con Map en Diccionarios Complexos
09:56 min - 21

Manejo de referencias en memoria con diccionarios y map en Python
04:12 min - 22

Playgrounds: Multiplica todos los elementos por dos
- 23

Filtrado de listas con Filter en Python
09:19 min - 24

Playgrounds: Retorna solo palabras de 4 letras y más
- 25

Uso de Reduce en Python para Manipular Listas
07:45 min
Módulos
Manipulación de archivos y errores
- 31

Control manual de iteradores en Python con next
06:33 min - 32

Errores y Excepciones en Python: Identificación y Manejo Básico
08:28 min - 33

Manejo de Errores en Python: Uso de Try y Except
08:17 min - 34

Playgrounds: Captura la excepción: ZeroDivisionError
- 35

Lectura y manejo de archivos de texto en Python
06:52 min - 36

Lectura y escritura de archivos de texto en Python
06:11 min - 37

Procesamiento de Archivos CSV en Python para Análisis de Datos
15:49 min - 38

Playgrounds: Lee un CSV para calcular el total de gastos
Gráficas en Python
Próximos pasos
Dictionary Comprehension con Condicionales en Python
Resumen
Filtrar datos al momento de crear un diccionario es una técnica poderosa en Python. Gracias a dictionary comprehension con condicionales, puedes generar nuevos diccionarios aplicando reglas de inclusión en una sola línea de código, lo que resulta en soluciones más legibles y eficientes.
¿Cómo funciona la sintaxis de dictionary comprehension con condicionales?
La estructura parte de las llaves o curly brackets, donde defines un par clave-valor que se obtiene de un iterable. La diferencia con un dictionary comprehension simple es que al final se agrega una condición que determina qué elementos formarán parte del diccionario resultante [0:25].
La sintaxis general luce así:
python result = {key: value for key, value in iterable if condición}
Esto significa que solo los elementos que cumplan la condición serán incluidos en el nuevo diccionario.
¿Cómo filtrar un diccionario de poblaciones por valor?
El primer ejemplo parte de un diccionario que simula la población de varios países latinoamericanos con valores generados aleatoriamente mediante la librería random [1:05]. El objetivo es crear un nuevo diccionario que solo contenga los países cuya población supere cierto umbral.
python import random
countries = ['Colombia', 'México', 'Bolivia', 'Perú'] population = {country: random.randint(1, 100) for country in countries}
result = {country: population for country, population in population.items() if population > 50} print(result)
Puntos importantes de este código:
- Se utiliza el método
.items()para recorrer simultáneamente las claves y los valores del diccionario original [2:18]. - La condición
if population > 50filtra solo los países que superan ese número [2:30]. - Al usar
random.randint(1, 100), cada ejecución puede arrojar resultados diferentes, lo que permite comprobar que el filtro funciona correctamente [3:00].
¿Cómo extraer vocales únicas de un texto con dictionary comprehension?
El segundo ejemplo trabaja con cadenas de caracteres. A partir del texto "Hola, soy Nicolás", se genera un diccionario donde cada vocal encontrada es la clave, y su versión en mayúscula es el valor [3:40].
python texto = "Hola, soy Nicolás" unique = {c: c.upper() for c in texto if c in 'aeiou'} print(unique)
Este fragmento aprovecha que una cadena de caracteres en Python es iterable, es decir, se puede recorrer letra por letra [4:10]. La condición if c in 'aeiou' asegura que solo se procesen vocales, ignorando consonantes, espacios y signos de puntuación.
¿Por qué las vocales no se repiten en el diccionario?
Un detalle clave que surge de este ejercicio es el comportamiento de las llaves únicas en los diccionarios. Aunque la letra "o" aparece tres veces en el texto, el diccionario solo contiene una entrada para ella [4:55]. Esto ocurre porque un diccionario en Python no permite claves duplicadas: cada vez que encuentra una clave existente, simplemente reemplaza el valor anterior.
Esto abre una pregunta interesante: ¿cómo podrías modificar este comprehension para que el valor sea la frecuencia de cada vocal en lugar de su versión en mayúscula? Es un reto que se puede resolver combinando el método .count() con la misma estructura.
python unique_freq = {c: texto.count(c) for c in texto if c in 'aeiou'} print(unique_freq)
¿Cuándo conviene usar dictionary comprehension con if?
Esta técnica resulta especialmente útil cuando necesitas:
- Filtrar datos de un diccionario existente según un criterio numérico o lógico.
- Transformar y seleccionar elementos de un iterable en un solo paso.
- Mantener el código conciso sin sacrificar legibilidad.
La combinación de comprehension con condicionales es una herramienta fundamental para escribir Python idiomático. Si ya dominas las listas por comprensión, aplicar la misma lógica a diccionarios te permitirá manipular estructuras de datos más complejas con facilidad.
¿Has encontrado algún caso donde prefieras usar un bucle for tradicional en lugar de dictionary comprehension? Comparte tu experiencia.