Sobes.tech
Middle

¿Qué son los iteradores y generadores en Python y en qué se diferencian?

sobes.tech AI

Respuesta de la IA

Un iterador en Python es un objeto que implementa los métodos __iter__() y __next__(). Permite recorrer los elementos de una colección de forma secuencial sin necesidad de cargar todos los datos en memoria de inmediato.

Un generador es un tipo especial de iterador que se crea mediante funciones con la palabra clave yield o expresiones generadoras. Los generadores calculan perezosamente los valores según sea necesario, lo que ahorra memoria y permite trabajar con secuencias potencialmente infinitas.

Las diferencias principales:

  • Un iterador es una interfaz general para recorrer elementos secuencialmente.
  • Un generador es una forma conveniente de crear iteradores usando yield.

Ejemplo de generador:

def count_up_to(n):
    count = 1
    while count <= n:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Aquí, count_up_to es un generador que devuelve números del 1 a n, uno a la vez.