Курс 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. Преобразование числа в восьмеричную строку
  3. Генераторы списков
  4. Бесконечная проверка в Python
  5. Работа с defaultdictами в Python
  6. Комментарии в Python
  7. Удаление элемента из списка в Python
  8. Проверка дублей в списке.
  9. Обмен данными с asyncio.Queue
  10. Работа с библиотекой xkcd
  11. Манипуляция формой массива в Numpy
  12. Глобальные переменные в Python
  13. Лимиты на ресурсы Python
  14. Слияние словарей в Python 3.9
  15. Удаление элементов из списка в Python
  16. ROT13 Шифр Цезаря в Python
  17. Создание списка дат
  18. Проверка типа объекта в Python
  19. Атрибуты класса и экземпляра
  20. Конкатенация строк в Python
  21. Удаление элементов из списка
  22. Установка и использование howdoi
  23. Удаление пробелов методом translate()
  24. Построение графиков в терминале с bashplotlib
  25. Создание задания в Cron
  26. Вычисление логарифмов в Python
  27. Функция product() из itertools
  28. Python и Юникод: работа с цифрами
  29. Навыки Python: строки, типы данных
  30. Метод ne для сравнения объектов
  31. Combobox в Tkinter
  32. Очистка вывода в Python
  33. Расчет времени выполнения кода
  34. Показ всплывающих окон Tkinter
  35. Особенности запятых в Python
  36. Работа со строками в Python
  37. Работа с CSV файлами в Python
  38. Сравнение def и lambda-функций
  39. Инверсия списка и строки
  40. Округление дробей в Python
  41. Работа с модулем random
  42. Namedtuple в Python
  43. Асинхронное выполнение задач в Python
  44. Создание копии итератора
  45. Ошибка NotImplemented в Python
  46. Наследование в программировании

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