Курс 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. Роль object и type в Python
  2. Python: отсутствие точек с запятыми
  3. Очистка данных с Pandas
  4. Операции с массивами в NumPy
  5. Итераторы в Python
  6. Генератор надежных паролей
  7. Python: отличительная особенность — отступы
  8. Работа с кортежами в Python
  9. Оценка точности модели
  10. Многопоточность и асинхронное программирование в Python
  11. Освобождение памяти в Python
  12. Подсчет часто встречающихся элементов
  13. Поиск с библиотекой Google
  14. Документирование функций в Python
  15. Counter() — подсчет элементов
  16. Python OrderedDict и fromkeys() — работа с словарями
  17. Многоточие в Python
  18. Компиляция регулярных выражений
  19. Быстрый поиск кода
  20. Создание новых функций через partial
  21. Concrete Paths в Python
  22. CSV строка разделение в Python
  23. Кортежи в Python: особенности и преимущества
  24. Сравнение строк в Python
  25. Проверка типа данных
  26. Повторение элементов в Python
  27. Удаление элементов из списка в Python
  28. Подробная информация о %pinfo
  29. Обязательные аргументы в Python
  30. Библиотека Rich: форматирование текста
  31. Удаление дубликатов в pandas
  32. Отладка производительности Python
  33. Установка переменной среды в Python
  34. Оператор is в Python
  35. Поиск анаграмм с Counter
  36. Строковое представление объектов
  37. Метод classmethod
  38. Преобразование списков в словарь
  39. Генераторы в Python
  40. Нахождение хеша для бесконечности и NaN в Python
  41. Итерация по копии коллекции
  42. Вычисление разности множеств в Python
  43. Функция zip() в Python
  44. Импорт модулей в Python 3.12
  45. Функциональное программирование.
  46. Модуль functools в Python
  47. Многострочные строки в Python
  48. Модуль subprocess: запуск внешних команд

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