Привет! Сегодня разберем генераторы и итераторы — мощные инструменты, которые помогают писать эффективный код, экономя память. Если ты работаешь с большими объемами данных, эта тема станет твоим секретным оружием! 1. Итераторы в Python: что это такое?
Итератор — это объект, по которому можно перебирать (итерировать) данные.
Примеры итерабельных объектов:
- list, tuple, set, dict, str
- файлы
- объекты, реализующие __iter__() и __next__() Простейший пример итерации — цикл for: Но что происходит "под капотом"? Python превращает список в итератор с помощью iter() и перебирает его через next(): Когда элементы заканчиваются, выбрасывается StopIteration. Создаем свой итератор Чтобы сделать объект итератором, нужно добавить два метода: - __iter__() — возвращает сам объект
- __next__() — возвращает следующий элемент Итератор сам запоминает, где остановился! 2. Генераторы: ленивые итераторы Генератор — это функция, которая запоминает свое состояние и возвращает значения по одному с