Курс 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. Переопределение метода len
  2. Срезы в Python
  3. Defaultdict в Python
  4. Конструктор в Python
  5. Повторение элементов в Python
  6. Создание инструмента обнаружения плагиата
  7. Получение текущей даты и времени с помощью datetime
  8. Копирование словарей и списков в Python
  9. Генерация случайных данных в NumPy
  10. Уникальность ключей в словаре
  11. Работа с географическими данными в Python
  12. globals и locals
  13. Разделение строки с помощью split()
  14. Python defaultdict добавление ключа
  15. Обработка исключений в Python 3
  16. Метод __iand__ для пользовательских классов
  17. Множественные конструкторы в Python
  18. Непрерывная проверка в Python
  19. Форматирование строк в Python
  20. Генераторы в Python
  21. Переопределение оператора % для объектов
  22. Оптимизация памяти с __slots__
  23. Создание новых списков в Python
  24. Частичное применение функций в Python
  25. Определение индекса элемента списка
  26. Установка random seed в Python
  27. Перезагрузка оператора в Python
  28. Создание списка через итерацию
  29. Работа с очередями в Python
  30. Логирование с Logzero: ротация файла
  31. Ветвление выражения в Python
  32. Модуль Operator в Python
  33. Метод сравнения объектов в Python
  34. Python Метод del.
  35. Сравнение строк в Python
  36. Вычисление натурального логарифма в NumPy
  37. Работа с коллекциями Python
  38. Обмен значений переменных в Python
  39. Аргументы *args и **kwargs
  40. Модуль subprocess: запуск внешних команд
  41. Функции min(), max(), sum()
  42. Применение команды break
  43. Функции all и any в Python
  44. Отправка HTTP-запросов с User-Agent
  45. Копирование и вставка текста в Python
  46. Работа с контекстным менеджером Pool
  47. Работа с путями в Python
  48. Тип CodeType в Python.

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