Курс 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"
- Форматирование кода на Python
- Создание графиков в терминале
- Работа с набором данных CIFAR10 в PyTorch
- Преобразование списков в словарь
- Обработка исключений в Python
- Ускоренный импорт библиотек
- Работа с файлами в Python
- Оценка выражений генератора в Python
- Измерение времени выполнения кода
- Python enumerate() функции
- Инициализация объекта
- Декораторы в Python
- Генерация тестовых данных с factory_boy
- Использование подчеркивания в REPL
- Поиск всех индексов подстроки
- Группировка элементов Python
- Применение функций в Python
- Метод split() для разделения строк
- Работа с IP-адресами в Python
- Объединение списков с помощью zip
- Оператор is в Python
- Математические функции в Python
- Поиск наиболее частого элемента списке
- Удаление элементов из списка
- Нахождение максимального значения и его индекса в списке
- Модуль math: основные функции
- Генераторы списков в Python
- Расчет времени выполнения
- Курс Data Scientist в медицине
- Округление банкира в Python
- Получение значений из словарей
- Метод lt для сортировки объектов
- Перегрузка операторов в Python
- Colorama: окрашивание текста в Python
- Протокол управления контекстом
- Метод hash в Python
- Просмотр внешних файлов в %pycat
- Анонимные функции Lambda
- Строки в Python: апострофы и кавычки
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Игра «Камень, ножницы, бумага» — Python
- Работа с CSV файлами в Python
- Расчет времени выполнения кода
- Итерация по коллекции в Python
- Анонимные функции в Python
- Декораторы в Python















