Курс 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. Создание GUI с Tkinter: Entry
  2. Применение функции к списку
  3. Копирование файлов с shutil()
  4. Получение текущей даты и времени
  5. Изменение элемента списка
  6. Генераторы в Python
  7. Проверка версии Python
  8. Управление асинхронными задачами на Python.
  9. Создание детектора плагиата
  10. Блок else в циклах Python
  11. Обновление множества в Python
  12. Python Аргументы по умолчанию
  13. Удаление дубликатов из списка с помощью dict.fromkeys
  14. Создание словарей и множеств в Python.
  15. Очистка списка от False, None, 0, «»
  16. Бесконечные списки в Python
  17. Python: отличительная особенность — отступы
  18. Подсчет элементов с помощью Counter
  19. Форматирование строк с f-строками
  20. Методы split() и join() — Python строк.
  21. Генерация UUID в Python
  22. Модуль functools в Python
  23. Применение промокода в Много лосося
  24. Обработка элементов в Python
  25. Переворот строки с использованием цикла
  26. Defaultdict в Python
  27. Обработка ошибок в JSON данных
  28. Метод title() в Python
  29. Работа с файловой системой в Python
  30. Генератор списка с условием if
  31. Работа с модулем cmath
  32. Метод count в Python: почему count(», ») возвращает 4?
  33. Принципы программирования
  34. Просмотр внешних файлов в %pycat
  35. Работа с словарями в Python
  36. Повторение элементов в Python
  37. Работа с библиотекой requests
  38. Метод join() с набором
  39. Работа со списками
  40. Капитализация строк
  41. Профилирование данных с Pandas.
  42. Функция zip() для объединения списков
  43. Работа с изменяемыми коллекциями
  44. Хеширование паролей с солью
  45. Метод matmul для умножения матриц
  46. Шаблоны Flask: условия и циклы
  47. Импортирование в Python
  48. Разделение строки на пары ключ-значение.

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