Курс 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. Установка Home Assistant
  2. Python Ellipsis использование
  3. JMESPath в Python
  4. Генераторы в Python
  5. Работа с необработанными строками
  6. Переопределение метода xor в Python
  7. Функция findall() для поиска вхождений строки
  8. Изменение IP-адреса в Python
  9. Распаковка аргументов в Python
  10. Показ всплывающих окон Tkinter
  11. Форматирование строк в Python
  12. Создание словарей и множеств в Python
  13. Ускорение обработки данных с %autoawait
  14. Проверка версии Python
  15. Работа с enumerate()
  16. Перевернуть список в Python
  17. Работа с изменяемыми коллекциями
  18. Группы исключений в Python
  19. Переопределение метода len
  20. Деление в Python
  21. Работа с WindowsPath()
  22. Метод pos в Python
  23. Расчет времени выполнения
  24. Работа с контекстными менеджерами
  25. Добавление элементов в список
  26. Параллельные вычисления в Python
  27. None в Python: использование и особенности
  28. Избегайте пустого списка
  29. Форматирование строк в Python
  30. Работа с модулем glob в Python
  31. Работа с комплексными числами
  32. Удаление символа из строки
  33. Генераторы в Python
  34. Удаление специальных символов
  35. Работа с итераторами в Python
  36. Сортировка элементов с OrderedDict
  37. Основы Python за 14 дней
  38. Комментарии в Python.
  39. Метод radd для пользовательских чисел
  40. Добавление элементов в список: append() vs extend()
  41. Создание словарей с defaultdict()
  42. Мониторинг работы программы Py-spy
  43. Оптимизация строк в Python
  44. Игра «Виселица» на Python

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