Курс 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. Возврат нескольких значений
  2. Перевернуть список в Python
  3. Определение имен функций
  4. Метод getitem для доступа к элементам последовательности
  5. Доступ к локальным переменным
  6. Логирование с Logzero
  7. Работа с географическими данными.
  8. Python union() функция — объединение множеств
  9. Метод rmatmul для обратного матричного умножения
  10. Структура данных словарь в Python
  11. Методы в Python
  12. Создание директории в Python
  13. Условное добавление элементов в список
  14. Ограничение итераций в Python
  15. Метод Event.wait() в Python
  16. Установка и использование Python-dateutil
  17. Чтение бинарного файла в Python.
  18. Метод rxor для операции побитового исключающего «или»
  19. Роль запятой в Python
  20. Использование html-скриптов в Jupyter Notebook
  21. Изменение регистра данных
  22. Инверсия списка и строки
  23. Каналы Senior: Python, Java, Frontend, SQL, C++
  24. Преобразование типов данных в set comprehension
  25. Методы Python для работы с данными
  26. Лямбда-функции в Python
  27. Функция rsplit() в Python
  28. Просмотр атрибутов и методов класса
  29. Работа с контекстными переменными
  30. Шаблоны Flask: условия и циклы
  31. Concrete Paths в Python
  32. Python 3.12: переиспользование кавычек
  33. Скачать видео с YouTube
  34. Аннотации типов в Python
  35. Декоратор для группы пользователей в Django
  36. Поиск уникальных элементов строкой в Python
  37. Виртуальные среды в Python
  38. Расширение информации об ошибке в Python
  39. Оператор «not» в Python
  40. Применение команды break
  41. Фильтрация списка от «ложных» значений
  42. Сортировка слиянием
  43. Оператор @ для умножения матриц
  44. Дефолтные параметры в Python

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