Курс Python → Генераторы в Python
Генераторы (generators) в Python — это специальный тип функций, которые позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти. Вместо этого значения вычисляются по мере необходимости. Генераторы особенно полезны при работе с большими объемами данных или при работе с бесконечными последовательностями.
Для создания генератора в Python используется ключевое слово yield вместо return. Когда функция с генератором вызывается, она не выполняется полностью, а возвращает объект-генератор, который можно использовать для итерации. Каждый раз, когда вызывается метод next() или используется цикл for, функция продолжает выполнение с того момента, где был вызван yield, и возвращает значение.
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for i, num in enumerate(fib):
if i == 10:
break
print(num)
В приведенном выше примере определен генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. При каждом вызове метода next() или итерации циклом for, генератор возвращает следующее число Фибоначчи. Используя цикл for и функцию enumerate, мы можем перебрать первые 10 чисел Фибоначчи из генератора.
Использование генераторов в Python помогает экономить память и увеличивает производительность программы, особенно при работе с большими объемами данных. Генераторы также удобны при работе с потоками данных или при необходимости создания бесконечных последовательностей, таких как генерация случайных чисел или обход файлов.
Другие уроки курса "Python"
- Метод join() для объединения строк
- Возврат нескольких значений
- Искажение имен в Python
- Метод ior для битовых операций
- Работа с файлами в Python
- Построение графиков в Matplotlib
- Метод radd для пользовательских чисел
- *args и **kwargs в Python
- Сохранение и загрузка модели в PyTorch
- Работа с enumerate()
- Упрощенный вывод данных в Python
- Многострочные комментарии в Python
- Удаление файлов и папок в Python
- Фильтрация элементов с помощью islice
- Представление бесконечности в Python
- Метод rpow в Python
- Генераторы в Python
- Python и Юникод: работа с цифрами
- Установка и использование модуля «howdoi»
- Декораторы в Python
- Namedtuple в Python
- Отрицательные индексы списков в Python
- Оптимизация памяти с помощью __slots__
- Описание скриптов в README
- Тип данных TypeVarTuple
- Работа с CSV файлами в Python
- Основные методы NumPy
- Модуль subprocess: запуск внешних команд
- Вложенные генераторы в Python
- Объединение словарей в Python
- Numpy: использование Ellipsis
- Создание вложенного генератора
- Открытие и запись файлов
- Работа с YAML в Python
- Загрузка постов Instagram
- Перебор элементов списка в Python
- Автоматизация скриптов на AWS Lightsail.
- Генераторы в Python
- Структурирование именованных констант
- Поиск кода
- Работа с байтовыми строками в Python
- Генератор надежных паролей
- Равенство и идентичность в Python
- Отслеживание прогресса с tqdm
- Расчет времени выполнения
- Доступ к локальным переменным















