Курс 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. Установка random seed в Python
  2. Изменение элемента списка
  3. Управление виртуальными окружениями в Python
  4. Запуск внешних программ с subprocess
  5. Обмен значений переменных в Python
  6. Округление в Python
  7. Протокол управления контекстом
  8. Преобразование типов данных в set comprehension
  9. Работа с файлами в Python
  10. Метод repr() в Python
  11. Проверка элементов списка условием
  12. Метод count в Python: почему count(», ») возвращает 4?
  13. Списки в Python
  14. Работа с YAML в Python
  15. Явный импорт переменных
  16. Очистка данных в Python
  17. Проверка типов с помощью isinstance
  18. Декораторы с @wraps
  19. Создание новой даты в Python
  20. Распаковка аргументов в Python
  21. Python reversed() функция
  22. Метод __imod__ для Python
  23. Блок else в Python
  24. Классы данных в Python
  25. Генераторы в Python
  26. Поиск индекса элемента в списке
  27. Lambda-функция в Python: использование с map() и sum()
  28. JMESPath в Python
  29. Расчет времени выполнения
  30. Декораторы в Python
  31. Сравнение def и lambda функций в Python
  32. Проверка версии Python
  33. Метод rpow в Python
  34. Python defaultdict добавление ключа
  35. Изменение объектов в Python
  36. Тест скорости набора текста на Python
  37. Работа с collections в Python.
  38. Наиболее частотные элементы с помощью Counter
  39. Удаление символа из строки
  40. Создание генераторов
  41. Объединение словарей в Python
  42. Функции map, filter, reduce
  43. Нахождение отличий в списках
  44. Открытие, чтение и закрытие файла

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