Курс 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. Компиляция регулярных выражений
  2. Поиск анаграмм с Counter
  3. Парсинг статей с Newspaper3k
  4. Объединение списков с использованием itertools.chain
  5. Обработка исключений в Python
  6. Логирование с Logzero
  7. Многоточие в Python
  8. Обработка исключений в Python
  9. Расчет времени выполнения программы
  10. Экспорт функций в Python
  11. Переворот строки с использованием цикла
  12. Итераторы в Python
  13. Преобразование строки в число
  14. Декодирование байтов в строку
  15. Построение графиков в Matplotlib
  16. OrderedDict — упорядоченный словарь
  17. Метод сравнения объектов в Python
  18. Асинхронное выполнение задач в Python
  19. Создание словарей в Python
  20. Ключевое слово global в Python
  21. Метод lt для сортировки объектов
  22. Работа с файлами в Python
  23. Получение значений из словарей
  24. Поиск с помощью регулярных выражений
  25. Аннотации типов в Python
  26. Декораторы классов
  27. Обработка StopIteration в Python
  28. Проекты на Python
  29. Обратный список чисел
  30. Вложенные функции в Python
  31. JMESPath в Python
  32. Присоединение элементов коллекции
  33. Выражения-генераторы в Python
  34. Гибкие функции Python
  35. Операции с массивами в NumPy
  36. Создание класса в Python
  37. Импорт модулей и пакетов в Python
  38. Фильтрация списков с itertools
  39. Основы Python за 14 дней
  40. Сортировка данных с лямбда-функциями
  41. Создание графиков в терминале
  42. Magic Commands — улучшение работы с Python
  43. Множественные конструкторы в Python
  44. Метод __float__ в Python
  45. Переопределение метода __lshift__
  46. Оператор Walrus: правильное использование

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