Курс Python → Генераторы в Python
Генераторы в Python — это специальный тип функций, которые вместо ключевого слова return используют ключевое слово yield. Когда функция с ключевым словом yield вызывается, она возвращает объект-генератор, который можно использовать для итерации по последовательности значений, возвращаемых функцией.
Первый способ создания генератора — это использование генераторных выражений. Генераторное выражение похоже на списковое включение, но вместо квадратных скобок используются круглые скобки. Например, можно создать генератор, который будет возвращать квадраты чисел от 1 до 10 следующим образом:
gen = (x**2 for x in range(1, 11))
for num in gen:
print(num)
Второй способ создания генератора — это создание функции, которая содержит ключевое слово yield. Например, можно создать генератор, который будет возвращать числа Фибоначчи:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib_gen = fibonacci()
for num in fib_gen:
if num > 1000:
break
print(num)
Генераторы в Python могут быть очень полезны для работы с большими объемами данных, так как они позволяют эффективно обрабатывать элементы последовательностей без необходимости хранить все значения в памяти. Использование генераторов помогает сэкономить память и ускорить выполнение программы.
Другие уроки курса "Python"
- Выборка чисел
- Удаление элемента по индексу
- Обратный список чисел
- Построение графиков в Matplotlib
- Глобальные переменные в Python
- Проверка на истинность объектов в Python
- Разделение строки в Python
- Множественное присваивание в Python
- Форматирование строк с % в Python
- Flask: создание веб-приложений
- Защита данных в Python
- Объединение словарей в Python
- PUT запрос для обновления данных
- Профилирование с cProfile
- Срезы в Numpy
- Форматирование данных с pprint
- Глобальные переменные в Python
- Декораторы в Python
- Установка и использование Logzero
- Преобразование символов с помощью map
- Преобразование данных в Python
- Поиск самого длинного слова в списке с использованием max()
- Печать комбинаций в Python с Itertools
- Обмен значений переменных в Python
- Логирование с Logzero
- Подсчет количества элементов в списке
- Структуры данных в Python
- Фильтрация входных данных в Python
- Синхронизация потоков с time.sleep()
- Декораторы с аргументами в Python
- Удаление URL-адресов в Python
- Глобальные переменные в Python
- Вывод символов строки в Python
- Проекты на Python
- Фильтрация списков с itertools
- Библиотека wikipedia для Python
- Любовь к Python
- Группы исключений в Python
- Библиотека Rich: форматирование текста
- Переворот списка в Python
- Измерение времени выполнения в Python
- Создание именованных кортежей в Python
- Подписка на каналы разработчиков
- Объединение словарей в Python
- Импорт в Python: список all
- Инверсия списка и строки в Python
- Роль object и type в Python















