Курс Python → Генераторы в Python

Генераторные функции (generator functions) — это мощный инструмент в Python, который позволяет создавать итераторы с помощью ключевого слова yield. Когда у вас есть необходимость обработать большой объем данных или выполнить сложные операции с элементами списка, генераторные функции становятся незаменимыми. Они позволяют удобно организовать фильтрацию и обработку элементов списка, не загружая память излишне.

Важным преимуществом использования генераторных функций является их эффективность. Поскольку генераторы работают по требованию (lazy evaluation), они не требуют хранения всех элементов списка в памяти одновременно. Вместо этого элементы обрабатываются по мере необходимости, что позволяет сэкономить ресурсы и улучшить производительность программы.

Для создания генераторной функции в Python необходимо использовать ключевое слово yield. Это ключевое слово позволяет вернуть значение из функции, приостановить ее выполнение и сохранить текущее состояние. При каждом вызове генераторной функции она продолжает выполнение с того места, где была приостановлена, что делает ее итератором.


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for item in gen:
    print(item)

В приведенном примере мы создаем генераторную функцию my_generator(), которая возвращает числа от 0 до 4 при каждом вызове. Затем мы создаем объект-генератор и итерируемся по нему, выводя каждый элемент на экран. Таким образом, мы можем эффективно обрабатывать большие объемы данных, не загружая память и повышая производительность программы.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Методы сравнения множеств
  2. Объединение списков в строку
  3. Объединение множеств в Python
  4. Просмотр внешнего файла в Python
  5. Функции высшего порядка в Python
  6. Работа с модулем Calendar
  7. Модуль subprocess: запуск внешних команд
  8. Названия столбцов в Python таблицах
  9. Оператор @ для умножения матриц
  10. Замена подстроки
  11. Установка и загрузка Instaloader
  12. Сравнение def и lambda в Python
  13. Функция zip() — объединение последовательностей
  14. Работа с *args и **kwargs в Python
  15. Обучение модели с указанием эпох
  16. Генерация чисел с range()
  17. Возврат значений из генератора
  18. Поиск индекса элемента
  19. List Comprehension Tutorial
  20. Функция product() в Python
  21. Обработка ошибки IndexError
  22. Измерение времени выполнения кода
  23. Запуск Python из интерпретатора
  24. Фильтрация элементов с помощью islice
  25. Реализация метода __abs__ в Python
  26. Оформление кода по PEP 8
  27. Создание новых функций через partial
  28. Мощь вложенных функций в Python
  29. GitHub в Telegram: подписка на уведомления
  30. Оператор break в Python
  31. Поиск индексов подстроки
  32. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  33. Множества и frozenset
  34. Конкатенация строковых литералов
  35. Функция format() в Python
  36. Логирование с Logzero
  37. Логирование с Logzero
  38. Python enumerate() использование
  39. Перевернуть список в Python
  40. Оператор (*) в Python
  41. Делегирование в Python
  42. Работа с timedelta
  43. Методы shutil для работы с файлами
  44. Переопределение метода __or__()
  45. Проверка файла .py на синтаксис.
  46. Условные выражения в Python

Marketello читают маркетологи из крутых компаний