Курс 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. Избегайте использования goto
  2. GitHub в Telegram: подписка на уведомления
  3. Преобразование в float
  4. Различия символов в Python
  5. Flask — веб-фреймворк Python
  6. Сравнение неупорядоченных списков
  7. Лямбда-функции в Python
  8. Сравнение строк в Python
  9. Хранение переменных в Python.
  10. Тест скорости набора текста на Python
  11. Создание пользовательской коллекции в Python
  12. Работа со строками в Python
  13. Метод __int__ в Python
  14. Выражения-генераторы в Python
  15. Преобразование чисел в Python
  16. Функции map, filter и reduce
  17. Оптимизация памяти с slots
  18. Удаление falsy-значений из списка с помощью filter
  19. Нахождение хеша для бесконечности и NaN в Python
  20. Переопределение метода __pow__
  21. Операции с комплексными числами
  22. Упрощение условных выражений с тернарным оператором
  23. Инициализация структур данных
  24. Перетасовка списков в Python
  25. Работа с JSON в Python
  26. Функция __init__ в Python
  27. Введение в PyTorch
  28. Бесконечные списки в Python
  29. Проверка списка: any() и all()
  30. Добавление элемента к кортежу
  31. Инициализация переменных
  32. Python: Фильтрация списков с помощью filter()
  33. Работа с Telegram API на Python
  34. Форматирование строк в Python
  35. Работа с файлами в Python
  36. Работа с SQLite в Python
  37. Python Метод del.
  38. Создание тестовых данных с Faker
  39. Управление контекстом выполнения кода
  40. Python Тесты и Гайды
  41. Concrete Paths в Python
  42. Управление виртуальными средами в Python
  43. Метод add для класса Vector
  44. Избегайте пустого списка
  45. Модуль math: основные функции

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