Saltar al contenido

Iteradores de Python

Python es un lenguaje de programación versátil ampliamente utilizado en el desarrollo web, el análisis de datos y más. Una característica clave es su soporte para iteradores, objetos que te permiten recorrer una secuencia de valores uno a la vez. Este artículo explora cómo funcionan los iteradores en Python y cómo utilizarlos de manera efectiva.

Comprender los iteradores en Python

En Python, un iterador es un objeto que implementa el protocolo de iteración, que consta de dos métodos: __iter__ y __next__. El método __iter__ devuelve el propio objeto iterador, mientras que __next__ devuelve el siguiente valor. Cuando no quedan valores, __next__ lanza una excepción StopIteration. Ten en cuenta que los iterables (como listas o cadenas) se pueden recorrer en bucle, pero solo los iteradores implementan __next__ para rastrear activamente el estado de la iteración.


Crear un iterador en Python

Crear un iterador en Python es sencillo. Solo necesitas definir una clase que implemente el protocolo de iteración. Aquí tienes un ejemplo:

Crear un iterador en Python usando clases

python
class MyIterator:
  def __init__(self, start, end):
    self.current = start
    self.end = end
    
  def __iter__(self):
    return self
    
  def __next__(self):
    if self.current < self.end:
      value = self.current
      self.current += 1
      return value
    else:
      raise StopIteration

En este ejemplo, definimos una clase llamada MyIterator que toma dos argumentos start y end. El método __init__ inicializa el valor actual del iterador en start, y el valor final en end. El método __iter__ devuelve el propio objeto iterador, y el método __next__ devuelve el siguiente valor en la secuencia, comenzando desde start y terminando en end.

Usar iteradores en Python

Los iteradores se utilizan ampliamente en Python, y los encontrarás en muchas funciones y bibliotecas integradas. Aquí tienes algunos ejemplos comunes:

  • Función range: Devuelve un iterador que genera una secuencia de números enteros.
  • Función zip: Toma múltiples iterables y devuelve un iterador que agrega sus elementos.
  • Función enumerate: Toma un iterable y devuelve un iterador que produce pares de índices y valores.
  • Funciones integradas iter() y next(): iter() convierte un iterable en un iterador, mientras que next() recupera el siguiente valor. Si no queda ningún valor, lanza StopIteration.

Así es como puedes iterar manualmente usando estas funciones integradas:

Iteración manual con iter() y next()

python
my_iter = iter([1, 2, 3])
print(next(my_iter))  # 1
print(next(my_iter))  # 2

Este código imprimirá los valores 1 y 2, uno a la vez.

Conclusión

En este artículo, cubrimos los fundamentos de los iteradores en Python: qué son, cómo implementarlos usando clases y cómo utilizarlos con funciones integradas. Esperamos que esta guía te ayude a aprovechar los iteradores de manera efectiva en tus proyectos. Gracias por leer.

Práctica

¿Cuáles son los aspectos esenciales de los iteradores de Python según el contenido del sitio web proporcionado?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.