Курс 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. Выборка чисел
  2. Удаление элемента по индексу
  3. Обратный список чисел
  4. Построение графиков в Matplotlib
  5. Глобальные переменные в Python
  6. Проверка на истинность объектов в Python
  7. Разделение строки в Python
  8. Множественное присваивание в Python
  9. Форматирование строк с % в Python
  10. Flask: создание веб-приложений
  11. Защита данных в Python
  12. Объединение словарей в Python
  13. PUT запрос для обновления данных
  14. Профилирование с cProfile
  15. Срезы в Numpy
  16. Форматирование данных с pprint
  17. Глобальные переменные в Python
  18. Декораторы в Python
  19. Установка и использование Logzero
  20. Преобразование символов с помощью map
  21. Преобразование данных в Python
  22. Поиск самого длинного слова в списке с использованием max()
  23. Печать комбинаций в Python с Itertools
  24. Обмен значений переменных в Python
  25. Логирование с Logzero
  26. Подсчет количества элементов в списке
  27. Структуры данных в Python
  28. Фильтрация входных данных в Python
  29. Синхронизация потоков с time.sleep()
  30. Декораторы с аргументами в Python
  31. Удаление URL-адресов в Python
  32. Глобальные переменные в Python
  33. Вывод символов строки в Python
  34. Проекты на Python
  35. Фильтрация списков с itertools
  36. Библиотека wikipedia для Python
  37. Любовь к Python
  38. Группы исключений в Python
  39. Библиотека Rich: форматирование текста
  40. Переворот списка в Python
  41. Измерение времени выполнения в Python
  42. Создание именованных кортежей в Python
  43. Подписка на каналы разработчиков
  44. Объединение словарей в Python
  45. Импорт в Python: список all
  46. Инверсия списка и строки в Python
  47. Роль object и type в Python

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