Comprensiones y Generadores

Las comprensiones proporcionan una manera más compacta de crear colecciones. Los generadores permiten trabajar con grandes volúmenes de datos de manera eficiente.
Conceptos clave
Comprensión de listas, diccionarios y conjuntos.
Generadores y yield.
Ejemplo
# Comprensión de lista
cuadrados = [x**2 for x in range(5)]
print(cuadrados)
# Generador
def contador():
for i in range(5):
yield i
gen = contador()
for valor in gen:
print(valor)Ejemplo Práctico
Objetivo:
Aprender a crear listas, diccionarios y generadores utilizando comprensiones y el comando yield.
Descripción:
Crea un programa que use comprensiones de listas y diccionarios para realizar operaciones sobre una lista de palabras, y usa un generador para crear una secuencia de números.
Instrucciones:
Usa una comprensión de lista para crear una lista de las longitudes de las palabras.
Usa una comprensión de diccionario para contar la frecuencia de cada letra en un conjunto de palabras.
Usa un generador para producir los primeros 10 números pares.
Posibles soluciones
Código:
# Lista de palabras
palabras = ["python", "django", "flask", "javascript"]
# Comprensión de lista para obtener las longitudes de las palabras
longitudes = [len(palabra) for palabra in palabras]
print(f"Longitudes de las palabras: {longitudes}")
# Comprensión de diccionario para contar las frecuencias de las letras
frecuencia = {letra: palabras[0].count(letra) for letra in palabras[0]}
print(f"Frecuencia de letras en la primera palabra: {frecuencia}")
# Generador para números pares
def generador_pares():
for i in range(0, 20, 2):
yield i
# Mostrar los números generados
for numero in generador_pares():
print(numero)