Курс 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. Декораторы в Python
  3. Декоратор Ajax required
  4. Работа с CSV файлами в Python
  5. Обработка исключения UnboundLocalError
  6. Вставка переменных в шаблоны Flask
  7. Метод __ilshift__ для битового сдвига влево
  8. Проверка вхождения подстроки
  9. Работа с Path в Python
  10. Python и Юникод: работа с цифрами
  11. Concrete Paths — метод .with_suffix()
  12. Вычисление натуральных логарифмов в NumPy
  13. Расширение операции побитового «и» в Python
  14. Сортировка с помощью параметра key
  15. Конкатенация строковых литералов
  16. Строки в Python: апострофы и кавычки
  17. Генератор данных в Keras
  18. Вложенные функции в Python
  19. Monkey Patching в Python
  20. Работа с WindowsPath()
  21. Работа с комплексными числами
  22. Различия символов в Python
  23. Создание списков в Python
  24. Сортировка в Python
  25. Создание директории в Python
  26. Добавление элементов в список
  27. Метод rlshift для битового сдвига
  28. Реализация метода __abs__ в Python
  29. Поиск шаблона в строке
  30. Мониторинг памяти с Pympler
  31. Проверка строки на палиндром
  32. Работа с timedelta в Python
  33. Работа с deque из collections
  34. Типы возвращаемых значений в Python
  35. Вызов функций по строке в Python.
  36. Объединение коллекций в Python
  37. Повторение элементов в Python
  38. Обрезка изображения с Pillow
  39. Методы работы со строками в Python
  40. Использование *args
  41. Конкатенация строк в Python
  42. Numpy: разбиение массивов
  43. ChainMap.new_child() — добавление нового словаря
  44. Приближение чисел в Python
  45. Подсчет элементов в Python
  46. Функции классификации комплексных чисел

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