Курс 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. Работа с timedelta
  2. Тестирование с unittest
  3. Разница между датами
  4. Метод __complex__ в Python
  5. Модуль antigravity: генерация координат
  6. Работа с Path в Python
  7. Работа с геоданными с помощью geopy
  8. Логические значения в Python
  9. Работа с timedelta в Python
  10. Применение функции к каждому элементу списка
  11. Создание графиков в терминале
  12. Проверка памяти объекта
  13. Чтение и запись TOML-конфигов
  14. Проверка переменных окружения в Python
  15. Создание задания в Cron
  16. Разделение строки с помощью split()
  17. Объединение итераторов
  18. Перемещение и удаление файлов в Python
  19. Библиотека wikipedia для Python
  20. Преобразование вложенного списка
  21. Псевдонимы в Python
  22. Метод join() для объединения элементов строки
  23. Работа с часовыми поясами в Python.
  24. Конкатенация списков в Python
  25. Транспонирование 2D-массива с помощью zip
  26. Создание функций высшего порядка
  27. Создание файла с проверкой ошибки
  28. Создание GUI с Tkinter: Entry
  29. Переименование файлов в Python
  30. Распаковка аргументов в Python
  31. Оператор умножения для вектора
  32. Работа с набором данных CIFAR10 в PyTorch
  33. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  34. Установка и использование pyshorteners
  35. JSON-esque в Python
  36. Аннотации типов в Python
  37. Создание копии итератора
  38. Функции map() и reduce() в Python
  39. Встраивание HTML в Jupyter Notebook
  40. Динамическая типизация в Python
  41. Переменные класса и экземпляра
  42. Python groupby() из itertools: работа с повторяющимися элементами
  43. Перемешивание списка с shuffle()
  44. Сортировка с параметром key
  45. Оценка выражений генератора в Python
  46. Метод setitem в Python

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