¿Cuál es la diferencia entre un iterable, un iterator y un generator?
Respuesta
- Iterable: cualquier cosa que puedas recorrer; implementa
__iter__ (list, dict, str, archivo). - Iterator: objeto con
__next__ que recuerda su posición y lanza StopIteration al final; iter(iterable) te da uno. Una sola pasada. - Generator: un iterator creado por una función con
yield (o una generator expression). Su estado se pausa entre yields; los valores se producen de forma lazy. - Por qué importa: procesar archivos grandes o filas de una base de datos con memoria constante, pipelines, secuencias infinitas.
Practica esta pregunta en Repaso