Курс 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"
- Форматирование объектов с модулем pprint
- Проверка вхождения подстроки
- Работа с набором данных CIFAR10 в PyTorch
- Работа с изображениями Pillow
- Pillow: работа с изображениями
- Список импортированных модулей в Python
- UserString в Python
- Вычисление фазы комплексного числа
- Именованные аргументы в Python
- Метод rxor для операции побитового исключающего «или»
- Декораторы в Python
- Перевод двоичного кода в целое число
- Функция map() и ленивая оценка
- Итерации в Python
- Метод ipow для возведения в степень
- Функция zip() в Python
- Namedtuple в Python
- Анонимные функции Lambda
- Метод remove() для удаления элемента из списка
- Метод ifloordiv для пользовательских классов
- Многострочные комментарии в Python
- Избегайте ошибку FileNotFoundError
- Преобразование PowerPoint в PDF.
- Извлечение данных из JSON
- Метод split() для разделения строк
- Замена текста с re.sub()
- Python Enumerate
- Работа с географическими данными в Python
- Работа с итераторами через срезы
- Символ подчеркивания в Python
- Просмотр атрибутов и методов класса
- Пропуск начальных строк с помощью dropwhile()
- Преобразование range в итератор
- Руководство по библиотеке pydantic
- Управление виртуальными средами в Python
- Комментарии в Python
- Работа с YAML в Python
- Удаление элемента по индексу
- Проверка окончания строки с помощью str.endswith()
- PUT запрос для обновления данных
- Создание треугольника Паскаля
- Удаление элемента из списка
- Метод gt в Python
- Модуль os: работа с файлами и папками
- Использование *args
- Разделение строк в Python
- Работа с аргументами командной строки















