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
= [x**2 for x in range(5)]
cuadrados print(cuadrados)
# Generador
def contador():
for i in range(5):
yield i
= contador()
gen 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
= ["python", "django", "flask", "javascript"]
palabras
# Comprensión de lista para obtener las longitudes de las palabras
= [len(palabra) for palabra in palabras]
longitudes print(f"Longitudes de las palabras: {longitudes}")
# Comprensión de diccionario para contar las frecuencias de las letras
= {letra: palabras[0].count(letra) for letra in palabras[0]}
frecuencia 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)