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

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

Пример создания простого генератора:


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

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

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

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

Помимо создания собственных генераторов, в Python есть встроенные функции, которые возвращают генераторы. Например, функция `range()` возвращает ленивую последовательность чисел, что позволяет эффективно работать с большими диапазонами значений без необходимости хранить их все в памяти.

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

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

Автор урока

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

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

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

  1. Деление в Python
  2. Назначение максимального и минимального значения переменной в Python.
  3. Python defaultdict добавление ключа
  4. Преобразование числа в восьмеричную строку
  5. Обмен переменными в Jupyter
  6. Печать месячного календаря
  7. Solidity для DeFi Ethereum
  8. Функция format() в Python
  9. Сложение матриц в NumPy
  10. Многострочные строки в Python
  11. Работа с модулем os в Python
  12. Работа с IP-адресами в Python
  13. Генераторы в Python
  14. Обновление данных через PUT запрос
  15. Подписка на Kaspersky Team
  16. Python-dateutil — работа с датами
  17. Ускоренный импорт библиотек
  18. Простой калькулятор Python
  19. Решатель судоку на Python с pygame
  20. Defaultdict в Python
  21. Создание словарей и множеств в Python.
  22. Бинарный поиск
  23. Настройка Cron
  24. Bootle — простой веб-фреймворк
  25. Codecademy в Telegram
  26. Атрибуты класса и экземпляра
  27. Слияние словарей в Python 3.9
  28. Метод __iand__ для пользовательских классов
  29. Объединение словарей в Python
  30. Проблемы с именами переменных
  31. Возврат нескольких значений
  32. Удаление символов новой строки в Python.
  33. Кортеж в Python: создание и использование
  34. Форматирование вывода с F-строками
  35. GitHub в Telegram: подписка на уведомления
  36. Приоритет операций в Python
  37. Форматирование заголовков в Python
  38. Измерение времени выполнения кода
  39. Работа с CSV в Python
  40. Импорт модуля из другого каталога
  41. Виртуальные среды в Python
  42. Разделение строк в Python
  43. Сортировка и обратный порядок
  44. Работа с контекст-менеджером «with»
  45. Измерение времени выполнения кода
  46. Перевод эмодзи и эмотиконов.

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