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

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

Первый способ создания генератора — это использование генераторных выражений. Генераторное выражение похоже на списковое включение, но вместо квадратных скобок используются круглые скобки. Например, можно создать генератор, который будет возвращать квадраты чисел от 1 до 10 следующим образом:


gen = (x**2 for x in range(1, 11))
for num in gen:
    print(num)

Второй способ создания генератора — это создание функции, которая содержит ключевое слово yield. Например, можно создать генератор, который будет возвращать числа Фибоначчи:


def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

fib_gen = fibonacci()
for num in fib_gen:
    if num > 1000:
        break
    print(num)

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

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

Автор урока

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

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

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

  1. Объединение Python и Shell
  2. Работа с путями в Python
  3. Вложенные циклы в Python
  4. Enum в Python
  5. Перетасовка списков в Python
  6. Модуль xkcd: добавление юмора в Python
  7. Оболочка Python
  8. Операторы присваивания в Python
  9. Вычисление времени выполнения
  10. Python enumerate() для работы с индексами
  11. Метод get для словаря
  12. Извлечение аудио из видео
  13. Оптимизация строк в Python
  14. Модуль Operator в Python
  15. Итераторы в Python
  16. Подсчет количества элементов в списке
  17. Закрытие файла в Python
  18. Присвоение значений переменным в Python
  19. Создание именованных кортежей в Python
  20. Метод matmul для умножения матриц
  21. Установка виртуального окружения Python
  22. Основы слова
  23. Срезы в Python
  24. Оператор break в Python
  25. Блок else в обработке исключений
  26. Работа с очередями в Python
  27. Упрощение работы с JSON-данными в Python
  28. Работа с итераторами в Python
  29. Списки: объединение, изменение
  30. Избегайте двойного подчеркивания
  31. Реверс строки и списка в Python.
  32. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  33. Создание коллекций из выражения-генератора
  34. Измерение времени выполнения кода с использованием time
  35. Создание Telegram-бота на Python
  36. Отладка кода
  37. Определение индекса элемента списка
  38. Метод __complex__ в Python
  39. Обработка ошибок ввода данных
  40. Сериализация объектов в Python
  41. Генераторы в Python
  42. Печать месячного календаря
  43. Потоковый ввод в Python
  44. Декоратор Ajax required
  45. Различия символов в Python
  46. Сортировка списка по индексам
  47. Список и кортеж в Python
  48. Логирование с Logzero

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