Курс 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
- Работа с комплексными числами
- Работа со словарями
- Модуль itertools: эффективная работа с итераторами
- Метод __float__ в Python
- JSON-esque в Python
- Возврат нескольких значений
- Метод init в Python
- PATCH-запрос с библиотекой requests
- Однострочники Python
- Переопределение метода divmod
- Форматирование строк в Python
- Функции классификации комплексных чисел
- Склеивание строк без циклов
- Настройка вывода NumPy
- Итерация по копии коллекции
- Частичное совпадение ввода
- Преобразование текста в нижний регистр
- Функция divmod() в Python
- Работа с timedelta
- Лямбда-функции в Python
- Работа с итераторами в Python
- Принцип одной функции
- Чтение бинарного файла в Python.
- Работа с очередями в Python
- Создание и обучение модели с Keras
- Создание коллекций из выражения-генератора
- Вывод с переменной через запятую
- Работа с эмодзи в Python
- Структура данных словарь в Python
- Явный импорт в Python
- Псевдонимы в Python
- Контроль точности вывода чисел
- Оператор объединения словарей
- Работа со словарями Python
- Правила именования переменных
- Управление асинхронными задачами на Python.
- Профилирование кода
- Работа с defaultdictами в Python
- Идентификатор объекта в Python















