Курс 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. Мощь вложенных функций в Python
  3. Создание итерируемых объектов
  4. Проверка запуска скрипта или импорта модуля
  5. Получение пути к текущему скрипту с помощью os
  6. Работа с словарями в Python
  7. Перетасовка списков в Python
  8. Работа с областями видимости переменных
  9. Обработка исключений в Python 3
  10. Удаление элемента из списка в Python
  11. Сравнение строк в Python
  12. Объединение словарей в Python
  13. Работа с deque из collections
  14. Применение функции map() в Python
  15. Проблемы с именами переменных
  16. Функции-генераторы в Python
  17. Передача параметров в Python
  18. Контекстный менеджер в Python
  19. Обход элементов в Python
  20. Работа с *args и **kwargs в Python
  21. Освобождение памяти в Python
  22. Переопределение метода __eq__
  23. Модуль xkcd: загрузка комиксов
  24. Работа со словарями
  25. Переопределение метода __or__()
  26. Оценка выражений генератора в Python
  27. Однострочники Python
  28. Уникальность ключей в словаре
  29. Блок else в обработке исключений
  30. Работа с контекстными менеджерами
  31. Оператор is в Python
  32. Импортирование в Python
  33. Сортировка в Python
  34. Метод repr() в Python
  35. Оператор Walrus: правильное использование
  36. Изменение логики работы с временем
  37. Работа с срезами в Numpy
  38. Обмен значений переменных в Python
  39. Функция product() в Python
  40. Переименование файлов в Python
  41. Создание лямбда-функций
  42. Область видимости переменных
  43. Глубокое копирование объектов
  44. Аннотации типов в Python
  45. Множественные конструкторы в Python
  46. Модуль future Python
  47. Преобразование кортежа в словарь.
  48. Методы обработки строк в Python

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