Курс 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"
- Руководство по использованию Colorama
- Подсчет элементов с помощью Counter
- Атрибуты класса и экземпляра
- Библиотека sh: удобные команды терминала
- Список импортированных модулей в Python
- Python: Splat-оператор и splatty-splat
- Python Метод sleep() времени
- Поиск уникальных и повторяющихся элементов
- Импорт объектов из модулей
- Оператор Walrus в Python
- Дефолтные параметры в Python
- Обработка исключений в Python
- Форматирование даты с strftime()
- Повторение и перенос строки
- Функция print() — вывод информации
- Работа со строками в Python.
- Избегание циклических зависимостей классов в Python
- Сортировка элементов с OrderedDict
- Beautiful Soup — извлечение данных из HTML
- Переворот строки с использованием цикла
- Работа с базами данных SQLite
- Метод split() в Python
- Умножение строк и списков
- Работа с кортежами в Python
- Изменение объектов в Python
- Символ подчеркивания в Python
- Сортировка HTML-элементов
- Создание новых списков в Python
- Пересечение списков с использованием множеств
- Метод add для класса Vector
- Инвертирование словаря
- Функция reduce() из модуля functools
- Генераторы в Python
- Аргумент по умолчанию
- Бинарный поиск
- Создание лямбда-функций
- Операции с числами в Python
- Базовые объекты Python
- Итерация по коллекции в Python
- Кортеж в Python: создание и использование
- Модуль functools в Python
- Функция divmod() в Python
- Оператор walrus в Python
- Создание итератора
- Оператор объединения словарей
- Создание словарей в Python
- Функции высшего порядка в Python















