Курс 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. Шаблоны Flask: условия и циклы
  2. Запуск файлового сервера
  3. Приближение чисел в Python
  4. Обратный список чисел
  5. Создание матрицы в Python
  6. Нан-рефлексивность в Python
  7. Python Enumerate
  8. Печать в одной строке
  9. Функции в Python: создание и вызов
  10. Загрузка постов Instagram
  11. Уникальные значения из списка
  12. Сумма элементов списка
  13. Логирование с Logzero
  14. Аргумент по умолчанию
  15. Запрос DELETE с библиотекой requests
  16. Удаление элементов во время итерации
  17. Профилирование с Pandas
  18. Сравнение строк в Python
  19. Декодирование байтов в строку
  20. Списки в Python: основы
  21. Извлечение статей с newspaper3k
  22. Операции с кортежами
  23. Печать календаря
  24. Работа с срезами в Numpy
  25. Сглаживание списка
  26. Необязательные аргументы в Python
  27. Функциональное программирование.
  28. Транспонирование 2D-массива с помощью zip
  29. kwargs в Python
  30. Метод getitem для доступа к элементам последовательности
  31. Разница между датами
  32. Итерация по итерируемым объектам
  33. Модуль math: основные функции
  34. Работа с CSV файлами в Python
  35. Разделение функций на этапы
  36. Работа с argparse
  37. Поиск индексов подстроки
  38. Расчет времени выполнения кода
  39. Избегание изменяемых аргументов
  40. Метод сравнения объектов в Python
  41. Основы Python
  42. Метод get() для словарей
  43. Очистка данных с Pandas
  44. Транспонирование матрицы в Python

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