Курс 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"
- Создание виртуальной среды
- Разделение строки на пары ключ-значение.
- Добавление элементов в список
- None в Python: использование и особенности
- Работа с кортежами в Python
- Форматирование строк в Python
- Работа с модулем random
- Работа с argparse
- Получение ID текущего процесса
- Переменная Шредингера
- Декоратор Ajax required
- Проверка однородности элементов списка
- Сортировка в Python
- Оператор распаковки в Python
- Запуск асинхронной корутины
- Ограничение итераций в Python
- Библиотека schedule: планировщик задач
- Реализация метода __abs__ в Python
- Работа с классами данных
- Удаление символов новой строки в Python.
- Вычисление фазы комплексного числа
- Библиотека funcy: удобные утилиты
- Форматирование даты с strftime()
- Dict Comprehension в Python
- IPython и Jupyter Notebook: руководство
- Проверка типов с помощью isinstance
- Декодирование байтов в строку
- Разность множеств
- Метод __ilshift__ для битового сдвига влево
- Получение списка кортежей из словаря
- Генераторы в Python
- Переопределение метода __floordiv__
- Поиск наиболее частого элемента в списке
- Заказ карты Тинькофф Black
- Упрощенный вывод данных в Python
- Локальные переменные.
- Проверка на палиндром
- Методы работы со списками
- Замена подстроки
- Фильтрация входных данных в Python
- Управление User-Agent в Python
- Объединение списков с использованием itertools.chain
- Преобразование чисел в восьмеричную строку
- Numpy: объединение массивов















