Курс 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"
- PrettyTable: создание таблицы
- Подсчет элементов с помощью Counter из collections
- Символ подчеркивания в Python
- Работа с файлами в Python
- Преобразование списка в словарь через генератор
- Работа с коллекциями Python
- Декоратор total_ordering для класса Point
- Работа с модулем glob в Python
- Работа с модулем cmath
- Конкатенация строк с методом join()
- Объединение словарей в Python 3.5+
- Отступы в Python
- Вложенные генераторы в Python
- Получение списка файлов в директории с использованием os
- Разбиение текста в Python
- Метод Self в Python
- Освобождение памяти в Python
- Аннотации типов в Python
- Измерение времени выполнения кода
- Замена текста в Python
- Работа с Event() в threading
- Метод lt для сортировки объектов
- Перезагрузка оператора в Python
- Обработка элементов в Python
- Извлечение новостей с помощью newspaper3k
- Срез в Python
- Преобразование генераторов в циклы
- Обработка ошибок в JSON данных
- Concrete Paths в Python
- Дефолтные параметры в Python
- Округление в Python
- PATCH-запрос с библиотекой requests
- Асинхронное программирование с asyncio
- Класс Counter() для подсчета элементов
- Получение комбинаций в Python
- Списки в Python: основы
- Перевернуть список в Python
- Описание скриптов в README
- Установка пакета в Python
- Работа с часовыми поясами в Python
- Философия Python
- Управление контекстом выполнения
- Создание GUI на Tkinter















