Курс 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: сокращение гласных
- Ошибка NotImplemented в Python
- PrettyTable: создание таблицы
- Именованные кортежи в Python
- Аннотации типов в Python
- Распаковка с оператором *
- Метод __imod__ для Python
- Работа с модулем random
- Объединение списков с помощью zip
- Использование type hints
- Атрибуты класса и экземпляра
- Типы возвращаемых значений в Python
- Оптимизация памяти в Python
- Оптимизация гиперпараметров с Scikit Optimize
- Однострочники Python
- Создание коллекций из генератора
- Оператор continue в Python
- Простой калькулятор Python
- Печать списка с помощью метода join
- Работа с zip()
- Перемещение и удаление файлов в Python
- Метод rlshift для битового сдвига
- Подписка на SelectelNews в Twitter
- Названия столбцов в Python таблицах
- Улучшение читаемости кода в Python
- Цикл for в Python
- Обработка элементов в Python
- Округление в Python
- Заказ карты Тинькофф Black
- Генераторные функции в Python
- Ограничение ресурсов в Python
- Преобразование строк в числа с плавающей запятой
- Метод join() с набором
- Выборка чисел
- Исправление ошибки NameError
- Декораторы в Python
- Форматирование даты с strftime()
- Работа с CSV файлами в Python
- Работа с классами данных
- CSV строка разделение в Python
- Генерация UUID в Python
- Сравнение строк в Python
- Замена текста с помощью sub
- Условное добавление элементов в список
- Обработка исключения UnboundLocalError
- kwargs в Python
- Проверка кортежей.















