Курс 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"
- Оператор «not» в Python
- Функция format() в Python
- Распаковка элементов массива
- Переопределение унарных операторов
- Ключевое слово global в Python
- Создание словаря в Python
- Добавление вложенных списков
- Декораторы в Python
- Особенности ключей словаря в Python
- Создание генераторов в Python
- Возврат нескольких значений из функции
- Именованные кортежи в Python
- Форматирование вывода списков
- Оболочка Python
- Проверка подстроки в строке
- Декораторы в Python
- Разделение строки с помощью split()
- Инициализация переменных
- Распаковка аргументов в Python
- Dict Comprehension в Python
- Преобразование списка в словарь через генератор
- Python: цикл for и оператор присваивания
- Модуль xkcd: добавление юмора в Python
- Сортировка данных с лямбда-функциями
- Преобразование данных в Python
- Colorama: окрашивание текста в Python
- Списковое включение в Python
- Декоратор total_ordering для сравнения объектов
- Получение текущей даты и времени с помощью datetime
- Функция product() в Python
- Преобразование текста в речь с Python
- Удаление и повторная вставка ключа в OrderedDict
- Работа с множествами в Python
- Объединение Python и Shell
- Преобразование в float
- Объединение кортежей в Python
- Оператор объединения словарей
- Подсказки типов в Python
- Работа с timedelta в Python
- Хранение данных с помощью dataclasses
- Псевдонимы в Python
- Расчет времени выполнения программы
- Поиск всех индексов подстроки
- Оператор «not» в Python
- Выбор редактора кода.















