Comprendiendo la iteración en Python
¿Qué es la iteración?
La iteración en la programación se refiere al proceso de ejecutar repetidamente un conjunto de instrucciones o un bloque de código. En Python, la iteración es un concepto fundamental que te permite trabajar con secuencias, como listas, tuplas y cadenas, así como con otros objetos iterables.
Objetos iterables
Un objeto iterable es un objeto que se puede iterar, es decir, se puede recorrer en un bucle y se pueden acceder a sus elementos uno por uno. En Python, los objetos iterables comunes incluyen:
- Listas
- Tuplas
- Cadenas
- Diccionarios
- Conjuntos
- Archivos
- Objetos personalizados que implementen el protocolo de iterador
El bucle for
El bucle for
es la forma más común de iterar sobre un objeto iterable en Python. El bucle for
te permite ejecutar un bloque de código para cada elemento en el objeto iterable.
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
print(fruit)
Salida:
apple
banana
cherry
El bucle while
El bucle while
es otra forma de implementar la iteración en Python. El bucle while
continúa ejecutando un bloque de código mientras una condición especificada sea verdadera.
count = 0
while count < 5:
print(count)
count += 1
Salida:
0
1
2
3
4
Iteradores y el protocolo de iterador
Detrás de escena, el bucle for
y otros mecanismos de iteración en Python utilizan el protocolo de iterador. Un iterador es un objeto que implementa el protocolo de iterador, que define dos métodos: __iter__()
y __next__()
. El método __iter__()
devuelve el objeto iterador en sí mismo, y el método __next__()
devuelve el siguiente elemento en la secuencia.
class MyIterator:
def __init__(self, data):
self.data = data
self.index = 0
def __iter__(self):
return self
def __next__(self):
if self.index < len(self.data):
result = self.data[self.index]
self.index += 1
return result
else:
raise StopIteration()
my_iterator = MyIterator([1, 2, 3, 4, 5])
for item in my_iterator:
print(item)
Salida:
1
2
3
4
5