Курс 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. Профилирование данных с Pandas.
  4. Метод сравнения объектов в Python
  5. Копирование и вставка текста в Python
  6. Объединение списков в строку
  7. Работа с IP-адресами в Python
  8. Списки в Python
  9. Структуры данных в Python
  10. Генераторы в Python
  11. Построение графиков в Matplotlib
  12. Использование двоеточия в Python
  13. Создание namedtuple списком полей
  14. Обработка ошибок в Python
  15. Многоточие в Python
  16. Условные выражения в Python
  17. Изменение регистра данных
  18. Вычисление разности множеств в Python
  19. Проверка однородности элементов списка
  20. Многострочные комментарии в Python
  21. Получение ID процесса
  22. Добавление кнопки в tkinter
  23. Работа с комплексными числами
  24. Вывод символов строки в Python
  25. Потоковый ввод в Python
  26. Избегайте ошибку FileNotFoundError
  27. Ошибка NotImplemented в Python
  28. Запрос пароля с помощью getpass
  29. Big O оптимизация
  30. lru_cache оптимизация функций
  31. Расчет времени выполнения
  32. Частичное применение функций в Python
  33. Срезы в Python
  34. Область видимости переменных
  35. Изменение переменной в Python: nonlocal
  36. Блок else в Python
  37. Создание вложенного генератора
  38. Назначение максимального и минимального значения переменной в Python.
  39. Отправка HTTP-запросов в Python
  40. Работа с комплексными числами
  41. Проверка на истинность объектов в Python
  42. Colorama: окрашивание текста в Python
  43. Установка переменной среды в Python
  44. Подписка на Kaspersky Team
  45. Профилирование кода
  46. Создание словаря и множества
  47. Объединение множеств в Python
  48. Транспонирование 2D-массива с помощью zip

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