Курс 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
- Создание даты из строки ISO
- Использование подчеркивания в REPL
- Дефолтные параметры в Python
- Цикл for в Python
- Правила именования переменных
- Удаление дубликатов из списка с помощью dict.fromkeys
- Работа с YAML в Python
- Операции с массивами в NumPy
- Функция zip() — объединение последовательностей
- Метод clear для коллекций
- Открытие и редактирование скриптов Python
- Переменная Шредингера
- Оператор continue в Python
- Создание именованных кортежей в Python
- Получение атрибутов и методов класса
- Виртуальные среды в Python
- Изменение объектов в Python
- Преобразование кортежа в словарь.
- Поиск наиболее частого элемента списке
- Переопределение метода __rshift__
- Работа со списками
- Работа с комплексными числами
- Поиск повторов в списке
- Работа с множествами в Python
- Комплексные числа в Python
- Измерение времени выполнения кода
- Модуль future Python
- Профилирование с Pandas
- Сокращение ссылок с pyshorteners
- Генераторы в Python
- Комментарии в Python
- Работа с каталогами в Python
- Объединение словарей в Python
- Сортировка элементов с OrderedDict
- Замена текста с re.sub()
- Срезы в Numpy
- Конвертация коллекций в Python
- Тестирование функции сложения
- Дизассемблирование Python кода
- Аннотации типов в Python
- Метод classmethod
- Многострочные комментарии в Python
- Равенство и идентичность в Python















