Курс 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. Использование type hints
  2. Доступ к локальным переменным
  3. Переопределение оператора % для объектов
  4. Сравнение def и lambda-функций
  5. Объединение Python и Shell
  6. Печать календаря в Python
  7. Работа с многоуровневыми словарями в Python
  8. Оператор морж в Python 3.8
  9. Работа с комплексными числами
  10. Разделение строк в Python
  11. Оптимизация параметров в Python
  12. Скачать видео с YouTube
  13. Разработка Telegram-ботов
  14. Python enumerate() использование
  15. Получение пути к текущему скрипту с помощью os
  16. Генераторы списков
  17. Операции со строками в Python
  18. 9 уловок для чистого кода
  19. F-строки в Python 3.8
  20. Операторы сравнения в Python
  21. Бесконечная проверка в Python
  22. Создание итерируемых объектов
  23. Функции range() в Python
  24. Функция format() в Python
  25. Генерация случайных чисел в Python
  26. Работа с CSV файлами в Python
  27. Concrete Paths — метод .with_suffix()
  28. Тестирование с unittest
  29. Чтение и запись TOML-конфигов
  30. Модуль antigravity: генерация координат
  31. Сложные типы данных в Python
  32. Генераторы данных
  33. Копирование и вставка текста в Python
  34. Округление чисел с помощью round
  35. Структуры данных в Python
  36. Именование переменных в Python
  37. Работа с модулем glob в Python
  38. Оператор объединения словарей
  39. Встроенные функции Python
  40. Оператор continue в Python
  41. Переворот строки
  42. Замыкания в Python
  43. Оператор walrus в Python
  44. Установка пакета в Python
  45. Определение размера папок в Python

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