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

Генераторные функции — это мощный инструмент в Python, который позволяет создавать итераторы с минимальным использованием памяти. Вместо того чтобы создавать список или кортеж сразу со всеми значениями, генераторная функция генерирует значения по мере необходимости. Это особенно полезно, когда у вас есть большой объем данных, которые необходимо обработать поэлементно.

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


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

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

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

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

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

Автор урока

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

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

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

  1. Объединение словарей в Python 3.5+
  2. Введение в PyTorch
  3. Удаление символа из строки
  4. Обработка исключений в Python
  5. Оператор Walrus: правильное использование
  6. Работа с itertools
  7. Получение пути к текущему скрипту с помощью os
  8. Метод join() для объединения элементов в строку.
  9. Подсчет вхождений элементов
  10. Руководство по Pymorphy2
  11. Оптимизация памяти с помощью __slots__
  12. Оптимизация интернирования строк
  13. Функция all() в Python
  14. Циклы в Python
  15. Форматирование строк в Python
  16. Метод rsub в Python: расширение функциональности вычитания
  17. Бесконечная проверка в Python
  18. Библиотека schedule: планировщик задач
  19. Пересечение списков с использованием множеств
  20. Управление браузером с Selenium
  21. Преобразование многоуровневого словаря
  22. Оценка точности модели
  23. Автоматизация действий с Pyautogui
  24. Сравнение строк в Python
  25. Работа с Requests для HTTP-запросов
  26. Настройка шрифта и цвета в Tkinter
  27. Итераторы с потерямиZIP
  28. Множественное присваивание в Python
  29. Функция enumerate в Python
  30. split() — разделение строки
  31. Преобразование символов в нижний регистр
  32. Работа с argparse
  33. Повторение элементов списков
  34. Лямбда-функции в Python
  35. Логический оператор «and» в Python
  36. Профилирование кода
  37. Асинхронный код в Python
  38. Замена переменных в Python
  39. Работа с IP-адресами в Python
  40. Непрерывная проверка в Python
  41. Метод join() с набором
  42. Преобразование в float
  43. Курс по дообучению ChatGPT
  44. Метод rmatmul для пользовательских матриц
  45. Блок try-except-else
  46. Транспонирование 2D-массива с помощью zip

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