Курс 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: Splat-оператор и splatty-splat
  2. Объединение словарей в Python
  3. Чтение бинарного файла в Python.
  4. Анализ кода — Python
  5. Удаление элементов из списка в Python
  6. Перевод текста с Python Translator
  7. Установка Git и AWS CLI
  8. Измерение времени выполнения кода с использованием time
  9. Метод join для наборов
  10. Генераторы данных
  11. Метод rename() для переименования файлов и каталогов
  12. Функция zip() в Python
  13. Принцип одной функции
  14. Переворот строки с использованием цикла
  15. Вакансии в Nebius
  16. lru_cache оптимизация функций
  17. Измерение времени выполнения кода
  18. Создание списков в Python
  19. Функции в Python: создание и вызов
  20. Определение имен функций
  21. Оператор обр. импликации
  22. Работа с датой и временем в Python
  23. Подписка на @SelectelNews
  24. Работа с геоданными с помощью geopy
  25. Преобразование списка в словарь через генератор
  26. Использование обратной косой черты в f-строках
  27. Лямбда-функции в цикле
  28. Моржовый оператор в Python 3.8
  29. split() без разделителя
  30. Python enumerate() функции
  31. Создание словарей и множеств в Python.
  32. Конкатенация строк с помощью join()
  33. Работа со слайсами
  34. Кортежи в Python: особенности и преимущества
  35. Многопоточность в Python
  36. Метод rlshift для битового сдвига
  37. Лямбда-функции для min/max
  38. Преобразование данных в Python
  39. Непрерывная проверка в Python
  40. Получение текущей даты в Python
  41. Преобразование типов данных в set comprehension
  42. Проверка запуска скрипта или импорта модуля
  43. Создание GUI на Tkinter
  44. Удаление файлов и папок в Python
  45. Просмотр внешнего файла в Python
  46. Работа с Requests для HTTP-запросов

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