Курс 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
  2. Управление импортом в Python
  3. Создание Radio кнопок в tkinter
  4. Работа с индексами списков
  5. Подсказки при вводе данных в Python
  6. Сортировка с помощью key
  7. Условное добавление элементов в список
  8. Обмен значений переменных в Python
  9. Применение функции к каждому элементу списка
  10. Удаление ссылок в Python
  11. Создание и операции с дробями
  12. Просмотр файла в Jupyter Noteboo
  13. Удаление эмодзи с помощью pandas
  14. Оператор is в Python
  15. Функции в Python
  16. Итерация по копии коллекции
  17. Метод Self в Python
  18. Отступы в Python
  19. Метод __irshift__ для Python
  20. Отрицательные индексы списков в Python
  21. Очистка списка от False, None, 0, «»
  22. Разделение строки на пары ключ-значение.
  23. Оптимизация поиска в словарях
  24. Сумма элементов списка
  25. Метод get для словаря
  26. Ограничение ресурсов в Python
  27. Установка и использование модуля «howdoi»
  28. Преобразование range в итератор
  29. Отправка POST-запроса в REST API
  30. Операторы объединения в Python 3.9
  31. Метод __int__ в Python
  32. Оптимизация интернирования строк
  33. Работа с enumerate()
  34. Аннотации типов в Python
  35. Оптимизация создания строк
  36. Оператор Walrus в Python
  37. Форматирование строк в Python
  38. Объединение списков в Python.
  39. Многопоточность и асинхронное программирование в Python
  40. Переворот строки
  41. Атрибуты класса и экземпляра в Python
  42. Использование type hints
  43. Операторы присваивания в Python
  44. Исключение NotImplementedError
  45. Получение обратного списка чисел
  46. Печать в одной строке

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