Курс 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. Переопределение метода __lshift__
  2. Управление User-Agent в Python
  3. Работа с библиотекой xkcd
  4. Работа с необработанными строками
  5. Переворот последовательности
  6. Преобразование чисел в слова
  7. Проверка на истинность объектов в Python
  8. Очистка строки в Python
  9. Метод ior для битовых операций
  10. Сортировка с помощью key
  11. Логические значения в Python
  12. Ограничение итераций в Python
  13. Повторение элементов в Python
  14. Хранение данных с помощью dataclasses
  15. Поиск самого длинного слова в списке с использованием max()
  16. Безопасный доступ к значениям словаря
  17. Блок else в Python
  18. Создание итератора
  19. Создание списка дат
  20. Генераторы в Python
  21. Декораторы в Python
  22. Освобождение памяти в Python
  23. Разбиение текста в Python
  24. Ускорение кода с помощью векторизации
  25. Реверс строки и списка в Python.
  26. Установка и использование emoji
  27. Python OrderedDict и fromkeys() — работа с словарями
  28. Заказ карты Тинькофф Black
  29. Работа с атрибутом dict
  30. Создание вложенного генератора
  31. Разделение строк в Python
  32. Установка User-Agent в Python
  33. Игра «Камень, ножницы, бумага» — Python
  34. Преобразование кортежа в словарь.
  35. Генераторы в Python
  36. Фильтрация списка от «ложных» значений
  37. Метод setdefault() в Python
  38. Конкатенация строк с методом join()
  39. Ошибка NotImplemented в Python
  40. Генерация QR-кодов с библиотекой qrcode
  41. Курс Data Scientist в медицине
  42. Структура данных словарь в Python
  43. Запуск асинхронной корутины
  44. Цикл for с enumerate() в Python
  45. Функция divmod() в Python
  46. Подписка на каналы разработчиков
  47. Копирование и вставка текста в Python

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