Курс Python → Генераторы в Python

Генераторы (generators) в Python — это специальный тип функций, которые позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти. Вместо этого значения вычисляются по мере необходимости. Генераторы особенно полезны при работе с большими объемами данных или при работе с бесконечными последовательностями.

Для создания генератора в Python используется ключевое слово yield вместо return. Когда функция с генератором вызывается, она не выполняется полностью, а возвращает объект-генератор, который можно использовать для итерации. Каждый раз, когда вызывается метод next() или используется цикл for, функция продолжает выполнение с того момента, где был вызван yield, и возвращает значение.


def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b
        
fib = fibonacci()
for i, num in enumerate(fib):
    if i == 10:
        break
    print(num)

В приведенном выше примере определен генератор fibonacci, который возвращает бесконечную последовательность чисел Фибоначчи. При каждом вызове метода next() или итерации циклом for, генератор возвращает следующее число Фибоначчи. Используя цикл for и функцию enumerate, мы можем перебрать первые 10 чисел Фибоначчи из генератора.

Использование генераторов в Python помогает экономить память и увеличивает производительность программы, особенно при работе с большими объемами данных. Генераторы также удобны при работе с потоками данных или при необходимости создания бесконечных последовательностей, таких как генерация случайных чисел или обход файлов.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Поиск шаблона в строке
  2. Извлечение новостей с newspaper3k
  3. GitHub в Telegram: подписка на уведомления
  4. Установка Python — Простое руководство
  5. Пересечение списков с использованием множеств
  6. Сортировка элементов в Python
  7. Отображение HTML кода в Python
  8. Кортежи в Python: особенности и преимущества
  9. Определение объема памяти объекта
  10. Сравнение def и lambda в Python
  11. Метод rmatmul для обратного матричного умножения
  12. Конвертация текстовых чисел с помощью Numerizer
  13. Работа с getopt
  14. Установка и использование Virtualenv
  15. Освоение Python
  16. Работа с многоуровневыми словарями в Python
  17. Замеры производительности в Python
  18. Отладка в Python
  19. Python Поверхностное Копирование
  20. Работа с модулем random
  21. Удаление символа из строки
  22. Создание namedtuple из словаря
  23. Объединение кортежей в Python
  24. Функция print() — вывод информации
  25. Обработка StopIteration в Python
  26. Функция zip() в Python
  27. Python Метод sleep() из time
  28. Установка и использование модуля «howdoi»
  29. Список переменных в Python
  30. Форматирование даты с strftime()
  31. Изменение элемента списка
  32. Хэш-функции в Python
  33. Объединение коллекций в Python
  34. Форматирование строк в Python
  35. Делегирование в Python
  36. Объединение списков с помощью zip
  37. Работа с OpenCV
  38. Разрешение имен в Python
  39. Оператор del в Python
  40. Нахождение отличий в списках
  41. Объединение, распаковка и деструктуризация
  42. Проверка надежности пароля на Python
  43. Метод Event.wait() в Python
  44. Локальные переменные.
  45. Управление импортом в Python
  46. Разница между датами
  47. Распаковка значений в Python
  48. Структура данных deque в Python

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