Курс 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. Вычисление натурального логарифма в NumPy
  2. Функция zip() в Python
  3. Разделение строки на пары ключ-значение.
  4. Работа с timedelta в Python
  5. Очистка вывода в Python
  6. GitHub в Telegram: подписка на уведомления
  7. Установка библиотек в Python
  8. Раздувающийся словарь в Python
  9. Извлечение статей с newspaper3k
  10. Namedtuple в Python
  11. Генераторы в Python
  12. Оператор «and» в Python
  13. Отслеживание выполнения программы с библиотекой tqdm
  14. Непрерывная проверка в Python
  15. Создание GUI с Tkinter: Entry
  16. Отладка утечек памяти в Python
  17. Преобразование числа в восьмеричную строку
  18. Руководство по библиотеке pydantic
  19. Итерация по коллекции в Python
  20. Удаление элементов из списка в Python
  21. Обработка ошибок в Python
  22. Структура данных словарь в Python
  23. Объединение строк с помощью метода join
  24. Создание таблиц в терминале с PrettyTable
  25. Удаление ключа из словаря в Python
  26. Итераторы в Python
  27. Отправка HTTP-запросов в Python
  28. Создание вкладок с TKinter
  29. Метод __ixor__ для побитового исключающего ИЛИ
  30. Присоединение элементов коллекции
  31. Метод __irshift__ для побитового сдвига вправо
  32. Аргументы *args и **kwargs
  33. Делегирование в Python
  34. Подписка на @SelectelNews
  35. Python: изменяемые и неизменяемые коллекции
  36. HTTP-запросы с библиотекой Requests
  37. Применение промокода в Много лосося
  38. Измерение времени выполнения кода в Python
  39. Таймер обратного отсчета
  40. Метод join() для объединения элементов строки
  41. Работа с JSON данными в Python
  42. Сортировка HTML-элементов
  43. Метод Self в Python
  44. Измерение времени выполнения кода
  45. Профилирование данных с Pandas
  46. Python Тесты и Гайды
  47. Анонимные функции в Python
  48. Генераторы данных
  49. Декоратор total_ordering для класса Point

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