Курс Python → Генераторы в Python
Генераторы в Python — это функции, которые используют ключевое слово `yield` вместо `return`. Когда функция с `yield` вызывается, она возвращает объект-генератор, который можно итерировать по одному значению за раз. При каждой итерации генератор запоминает свое состояние, чтобы продолжить выполнение с того же места. Это позволяет экономить память и увеличивает производительность при работе с большими объемами данных.
Пример создания простого генератора:
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for val in gen:
print(val)
В этом примере функция `my_generator` возвращает генератор, который поочередно выдает числа от 0 до 4. При каждой итерации цикла `for` будет выводиться следующее значение, не храня все значения в памяти одновременно.
Генераторы также могут быть бесконечными, если они используют цикл `while` или рекурсию. Они позволяют эффективно обрабатывать потенциально бесконечные последовательности данных, такие как потоки сетевых пакетов или событий.
Помимо создания собственных генераторов, в Python есть встроенные функции, которые возвращают генераторы. Например, функция `range()` возвращает ленивую последовательность чисел, что позволяет эффективно работать с большими диапазонами значений без необходимости хранить их все в памяти.
Использование генераторов в Python помогает сделать код более читаемым, компактным и эффективным. Они позволяют работать с данными по требованию, что особенно важно при обработке больших объемов информации или при работе с потенциально бесконечными последовательностями.
Другие уроки курса "Python"
- Ускоренный импорт библиотек
- Метод __iand__ для пользовательских классов
- Загрузка постов Instagram
- Combobox в Tkinter
- Обмен переменными в Jupyter
- Многострочные комментарии в Python
- Модуль sys: основы
- Переопределение метода __eq__
- Операции с матрицами в Python
- Создание словаря через dict comprehension
- Функции any() и all() в Python
- Работа с многоуровневыми словарями в Python
- Оператор @ для умножения матриц
- Упрощение работы с JSON-данными в Python
- Оптимизация параметров в Python
- Шаблоны и наследование в Flask
- Метод invert для побитового отрицания
- Очистка данных с Pandas
- Аргументы *args и **kwargs
- Метод join() для объединения строк
- Получение значений из словарей
- Оператор del в Python
- Работа с Event() в threading
- Добавление элемента в список.
- Модуль antigravity: генерация координат
- Список импортированных модулей в Python
- Запуск внешнего кода в Jupyter
- Генераторы в Python
- Установка Git и AWS CLI
- Многострочные комментарии в Python
- Замена атрибута в именованном кортеже
- Атрибуты класса и экземпляра
- Декораторы в Python
- Добавление Progressbar в Python
- Срезы в Python
- Работа с кортежами в Python
- Работа с географическими данными.
- Экспорт данных в файл.
- Многопроцессорное программирование в Python
- Улучшение читаемости кода в Python
- Получение идентификатора объекта в памяти
- Форматирование строк с помощью f-строк
- Переопределение метода __rshift__
- Преобразование объекта в строку
- Чтение бинарного файла в Python.
- Лямбда-функции в Python
- Профилирование с Pandas















