Курс 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. Ускоренный импорт библиотек
  2. Метод __iand__ для пользовательских классов
  3. Загрузка постов Instagram
  4. Combobox в Tkinter
  5. Обмен переменными в Jupyter
  6. Многострочные комментарии в Python
  7. Модуль sys: основы
  8. Переопределение метода __eq__
  9. Операции с матрицами в Python
  10. Создание словаря через dict comprehension
  11. Функции any() и all() в Python
  12. Работа с многоуровневыми словарями в Python
  13. Оператор @ для умножения матриц
  14. Упрощение работы с JSON-данными в Python
  15. Оптимизация параметров в Python
  16. Шаблоны и наследование в Flask
  17. Метод invert для побитового отрицания
  18. Очистка данных с Pandas
  19. Аргументы *args и **kwargs
  20. Метод join() для объединения строк
  21. Получение значений из словарей
  22. Оператор del в Python
  23. Работа с Event() в threading
  24. Добавление элемента в список.
  25. Модуль antigravity: генерация координат
  26. Список импортированных модулей в Python
  27. Запуск внешнего кода в Jupyter
  28. Генераторы в Python
  29. Установка Git и AWS CLI
  30. Многострочные комментарии в Python
  31. Замена атрибута в именованном кортеже
  32. Атрибуты класса и экземпляра
  33. Декораторы в Python
  34. Добавление Progressbar в Python
  35. Срезы в Python
  36. Работа с кортежами в Python
  37. Работа с географическими данными.
  38. Экспорт данных в файл.
  39. Многопроцессорное программирование в Python
  40. Улучшение читаемости кода в Python
  41. Получение идентификатора объекта в памяти
  42. Форматирование строк с помощью f-строк
  43. Переопределение метода __rshift__
  44. Преобразование объекта в строку
  45. Чтение бинарного файла в Python.
  46. Лямбда-функции в Python
  47. Профилирование с Pandas

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