Как написать генератор
Python
Junior
Без компании
Как написать генератор
Ответы
Генератор в Python — это функция, которая использует `yield` вместо `return` для возврата значений по одному, сохраняя состояние между вызовами.
**Пример простого генератора:**
```
def count_up_to(max):
n = 1
while n <= max:
yield n
n += 1
counter = count_up_to(5)
for num in counter:
print(num) # 1, 2, 3, 4, 5
```
**Ключевые особенности:**
- Ленивое вычисление — значения генерируются по требованию.
- Сохраняет состояние между вызовами.
- Потребляет меньше памяти, чем списки, так как не хранит все элементы сразу.
**Генераторные выражения:**
```
squares = (x**2 for x in range(10)) # Круглые скобки вместо квадратных
```
Генераторы полезны для обработки больших данных или бесконечных последовательностей.