Курс 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. Явный импорт в Python
  2. Ускорение выполнения кода в Python
  3. Обмен переменными в Jupyter
  4. Возведение в квадрат с помощью itertools
  5. Экспорт функций в Python
  6. Установка User-Agent в Python
  7. Реализация операции -= для пользовательского класса
  8. Метод rsub в Python: расширение функциональности вычитания
  9. Счетчик в Python: most_common()
  10. Функциональное программирование.
  11. Объединение множеств в Python
  12. Декоратор Ajax required
  13. Модуль sys: основы
  14. Работа с кортежами в Python
  15. Декораторы в Python
  16. Обновление ключей в Python
  17. Применение функции к списку
  18. Лямбда-функции в Python
  19. Переопределение метода delitem в Python
  20. Любовь к Python
  21. Работа с пользовательским вводом
  22. Оператор «not» в Python
  23. List Comprehension Tutorial
  24. Метод matmul для умножения матриц
  25. Счетчик ссылок в Python
  26. Работа с timedelta в Python
  27. Вывод символов строки в Python
  28. Участие в сообществе @selectel
  29. Иерархия классов в Python
  30. Преобразование числа в восьмеричную строку
  31. Получение пути к текущему скрипту с помощью os
  32. Генераторы в Python
  33. Переопределение метода __eq__
  34. Разность множеств
  35. Игра «Угадывание чисел»
  36. Перехват исключений в Python
  37. Проблема сравнения словарей
  38. Модуль xkcd: добавление юмора в Python
  39. Локальные переменные.
  40. Роль object и type в Python
  41. Установка и использование библиотеки google
  42. Управление пакетами с pip
  43. Объединение кортежей в Python
  44. Форматирование строк в Python
  45. Регулярные выражения: метод match
  46. Работа с утверждениями в Python
  47. Преобразование текста в нижний регистр
  48. Функции map() и reduce() в Python

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