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

Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.

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


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

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

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

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

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

Автор урока

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

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

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

  1. Работа с множествами в Python
  2. Наследование в программировании
  3. 9 уловок для чистого кода
  4. Удаление дубликатов из списка с помощью dict.fromkeys
  5. Регулярные выражения: метод match
  6. Функция с *args.
  7. Сокращение ссылок с pyshorteners
  8. Инициализация структур данных
  9. Работа с очередями в Python
  10. Фильтрация данных в Python.
  11. Переворот списка в Python
  12. Установка и использование pyshorteners
  13. Python Ellipsis использование
  14. Поиск подстроки в строке
  15. Нахождение пересечения множеств
  16. Поиск анаграмм с Counter
  17. Декоратор Ajax required
  18. Управление контекстом выполнения
  19. Асинхронный код в Python
  20. Комментарии в Python.
  21. Списки в Python
  22. Обучение модели с указанием эпох
  23. Установка пакетов с помощью pip
  24. Python enumerate() для работы с индексами
  25. Метод get для словаря
  26. Искажение имен в Python
  27. Модуль os в Python: работа с файлами
  28. Метод rsub в Python: расширение функциональности вычитания
  29. Создание коллекций из генератора
  30. Python Метод del.
  31. Генерация случайных данных в NumPy
  32. Группировка элементов в словарь
  33. Работа со строками в Python.
  34. Работа с argparse
  35. Форматирование строк с f-строками
  36. Модуль sys: основы
  37. Проверка файла .py на синтаксис.
  38. Библиотека sh: удобные команды терминала
  39. Импорт в Python: список all
  40. Библиотека Emoji: использование смайлов в Python
  41. Оператор Walrus: правильное использование
  42. Блок else в циклах Python
  43. Оператор обр. импликации
  44. Функциональное программирование в Python
  45. Операторы += в Python
  46. Работа с типами данных в Python с помощью pydantic.
  47. Обработка исключений в Python 3

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