Привет! Сегодня поговорим о *генераторах и итераторах* — мощном инструменте Python, который позволяет работать с **огромными данными** без лишней памяти. --- 1. Итераторы: что это и зачем нужны? *Итератор* — это объект, который можно *перебрать в цикле* (`for`), но он не загружает все элементы в память сразу. Любой объект с методами `__iter__()` и `__next__()` является **итератором**. Пример: создадим итератор вручную class Counter: def __init__(self, start, end): self.current = start self.end = end def __iter__(self): return self # Итератор должен вернуть сам себя def __next__(self): if self.current >= self.end: raise StopIteration # Завершаем итерацию value = self.current self.current += 1 return value counter = Counter(1, 5) for num in counter: print(num) **Вывод:** 1 2 3 4 ``` Объект `Counter` можно **перебирать в цикле! --- 2. Генераторы: ленивые итераторы **Генератор** — это функция, которая запоминает свое сост
Генераторы и итераторы в Python: как писать эффективный код
31 января 202531 янв 2025
2 мин