Курс 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"
- Поиск шаблона в строке
- Извлечение новостей с newspaper3k
- GitHub в Telegram: подписка на уведомления
- Установка Python — Простое руководство
- Пересечение списков с использованием множеств
- Сортировка элементов в Python
- Отображение HTML кода в Python
- Кортежи в Python: особенности и преимущества
- Определение объема памяти объекта
- Сравнение def и lambda в Python
- Метод rmatmul для обратного матричного умножения
- Конвертация текстовых чисел с помощью Numerizer
- Работа с getopt
- Установка и использование Virtualenv
- Освоение Python
- Работа с многоуровневыми словарями в Python
- Замеры производительности в Python
- Отладка в Python
- Python Поверхностное Копирование
- Работа с модулем random
- Удаление символа из строки
- Создание namedtuple из словаря
- Объединение кортежей в Python
- Функция print() — вывод информации
- Обработка StopIteration в Python
- Функция zip() в Python
- Python Метод sleep() из time
- Установка и использование модуля «howdoi»
- Список переменных в Python
- Форматирование даты с strftime()
- Изменение элемента списка
- Хэш-функции в Python
- Объединение коллекций в Python
- Форматирование строк в Python
- Делегирование в Python
- Объединение списков с помощью zip
- Работа с OpenCV
- Разрешение имен в Python
- Оператор del в Python
- Нахождение отличий в списках
- Объединение, распаковка и деструктуризация
- Проверка надежности пароля на Python
- Метод Event.wait() в Python
- Локальные переменные.
- Управление импортом в Python
- Разница между датами
- Распаковка значений в Python
- Структура данных deque в Python















