0Pricing
Learn AI with Python · Lección

Generadores

Comprenda los generadores y su uso para crear iteradores.

Generadores es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 2 de 5. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 5 lecciones en total.

Introducción a los generadores

Introducción a los generadores

Los generadores son un tipo especial de iterador en Python que permite iterar sobre los datos de forma diferida. En lugar de devolver todos los datos a la vez, producen un elemento cada vez, lo que hace que sean eficientes en cuanto al uso de memoria.

En esta lección, aprenderá a crear y usar generadores en Python.

Generadores — ilustración 1

¿Qué es un generador?

¿Qué es un generador?

Un generador es una función que utiliza la palabra clave yield para devolver valores de uno en uno. Cada llamada al método next() del generador reanuda la ejecución desde el punto en el que se produjo el último valor.

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

Cómo funcionan los generadores

Cómo funcionan los generadores

Los generadores guardan el estado de la función para poder reanudar la ejecución exactamente donde se detuvo. Esto hace que sean eficientes en cuanto al uso de memoria e ideales para conjuntos de datos grandes.

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

Expresiones generadoras

Expresiones generadoras

Las expresiones generadoras son similares a las comprensiones de listas, pero utilizan paréntesis en lugar de corchetes. Crean generadores en lugar de listas.

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

Generadores frente a listas

Generadores frente a listas

Los generadores usan la memoria de manera más eficiente que las listas porque no almacenan todos los datos en la memoria. En su lugar, generan los datos sobre la marcha.

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

Casos de uso de los generadores

Casos de uso de los generadores

Los generadores son ideales para:

  • Procesar conjuntos de datos grandes que no caben en la memoria.
  • Generar secuencias infinitas.
  • Evaluar datos de forma diferida.

Generadores infinitos

Generadores infinitos

Los generadores pueden producir secuencias infinitas, como una secuencia interminable de números. Asegúrese de detener el bucle para evitar una ejecución infinita.

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

Funciones generadoras con varios yields

Funciones generadoras con varios yields

Las funciones generadoras pueden tener varias instrucciones yield, lo que permite crear secuencias complejas:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

Errores comunes con los generadores

Errores comunes con los generadores

Estos son algunos errores que debe evitar:

  • Usar return en lugar de yield en una función generadora.
  • No consumir el generador con un bucle o con next().
  • Usar generadores para conjuntos de datos pequeños, en los que las listas son más apropiadas.

¿Qué hemos aprendido?

¿Qué hemos aprendido?

En esta lección, ha aprendido:

  • Qué son los generadores y cómo funcionan en Python.
  • Cómo usar yield para crear funciones generadoras.
  • Las diferencias entre los generadores y las listas.
  • Casos de uso de los generadores, como las secuencias infinitas y los conjuntos de datos grandes.

¡Excelente trabajo! Pasemos al siguiente tema.

Generadores — ilustración 11

Preguntas frecuentes

¿La lección «Generadores» es gratis?

Sí — el texto completo de «Generadores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 5 lecciones en total.

¿Qué aprenderé en «Generadores»?

Comprenda los generadores y su uso para crear iteradores. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 5.

¿Cuánto tiempo toma la lección «Generadores»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Decoradores
  2. Generadores
  3. Gestores de contexto (sentencias with)
  4. Comprensiones (de listas, conjuntos y diccionarios)
  5. Iteradores e iterables
← Volver a Learn AI with Python