Курс Python → Генераторы в Python

Генераторные функции (generator functions) — это мощный инструмент в Python, который позволяет создавать итераторы с помощью ключевого слова yield. Когда у вас есть необходимость обработать большой объем данных или выполнить сложные операции с элементами списка, генераторные функции становятся незаменимыми. Они позволяют удобно организовать фильтрацию и обработку элементов списка, не загружая память излишне.

Важным преимуществом использования генераторных функций является их эффективность. Поскольку генераторы работают по требованию (lazy evaluation), они не требуют хранения всех элементов списка в памяти одновременно. Вместо этого элементы обрабатываются по мере необходимости, что позволяет сэкономить ресурсы и улучшить производительность программы.

Для создания генераторной функции в Python необходимо использовать ключевое слово yield. Это ключевое слово позволяет вернуть значение из функции, приостановить ее выполнение и сохранить текущее состояние. При каждом вызове генераторной функции она продолжает выполнение с того места, где была приостановлена, что делает ее итератором.


def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for item in gen:
    print(item)

В приведенном примере мы создаем генераторную функцию my_generator(), которая возвращает числа от 0 до 4 при каждом вызове. Затем мы создаем объект-генератор и итерируемся по нему, выводя каждый элемент на экран. Таким образом, мы можем эффективно обрабатывать большие объемы данных, не загружая память и повышая производительность программы.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Цикл for в Python
  2. Инверсия списка и строки
  3. Шаблоны Flask: условия и циклы
  4. Сохранение и загрузка модели в PyTorch
  5. Класс UserDict: дополнительная функциональность
  6. Обработка исключений в Python
  7. Преобразование чисел в Python
  8. Изменение логики работы с временем
  9. Нахождение пересечения множеств
  10. Генерация чисел с range()
  11. Метод eq для сравнения объектов
  12. Тестирование с unittest
  13. Python и Юникод: работа с цифрами
  14. F-строки в Python
  15. Генерация случайных данных в NumPy
  16. Операторы объединения в Python 3.9
  17. Pretty-printing JSON в Python
  18. Просмотр атрибутов и методов класса
  19. Импорт модулей и пакетов в Python
  20. Создание Telegram-бота на Python
  21. Циклы в Python
  22. Работа с PosixPath() в Python
  23. Преобразование букв в нижний регистр
  24. Создание объекта времени
  25. Создание коллекций из генератора
  26. Генератор чисел Фибоначчи
  27. Многострочные строки в Python
  28. Деление в Python
  29. Динамические маршруты во Flask
  30. Проверка переменных окружения в Python
  31. Создание графики с черепахой
  32. Структуры данных в Python
  33. Любовь к Python
  34. Создание генераторов
  35. Итерация по коллекции в Python
  36. Объединение словарей в Python
  37. Открытие и запись файлов
  38. Глобальные переменные в Python
  39. Разница между датами
  40. Замена текста в Python
  41. Создание пустых функций и классов в Python
  42. Особенности запятых в Python
  43. Удаление символа из строки
  44. Оператор «and» в Python
  45. Функция sleep() в Python
  46. Генераторы списков
  47. Установка и использование модуля Wikipedia

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