Курс 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"
- Роль object и type в Python
- Python: отсутствие точек с запятыми
- Очистка данных с Pandas
- Операции с массивами в NumPy
- Итераторы в Python
- Генератор надежных паролей
- Python: отличительная особенность — отступы
- Работа с кортежами в Python
- Оценка точности модели
- Многопоточность и асинхронное программирование в Python
- Освобождение памяти в Python
- Подсчет часто встречающихся элементов
- Поиск с библиотекой Google
- Документирование функций в Python
- Counter() — подсчет элементов
- Python OrderedDict и fromkeys() — работа с словарями
- Многоточие в Python
- Компиляция регулярных выражений
- Быстрый поиск кода
- Создание новых функций через partial
- Concrete Paths в Python
- CSV строка разделение в Python
- Кортежи в Python: особенности и преимущества
- Сравнение строк в Python
- Проверка типа данных
- Повторение элементов в Python
- Удаление элементов из списка в Python
- Подробная информация о %pinfo
- Обязательные аргументы в Python
- Библиотека Rich: форматирование текста
- Удаление дубликатов в pandas
- Отладка производительности Python
- Установка переменной среды в Python
- Оператор is в Python
- Поиск анаграмм с Counter
- Строковое представление объектов
- Метод classmethod
- Преобразование списков в словарь
- Генераторы в Python
- Нахождение хеша для бесконечности и NaN в Python
- Итерация по копии коллекции
- Вычисление разности множеств в Python
- Функция zip() в Python
- Импорт модулей в Python 3.12
- Функциональное программирование.
- Модуль functools в Python
- Многострочные строки в Python
- Модуль subprocess: запуск внешних команд















