Курс 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. Форматирование вывода списков
  2. Функция __init__ в Python
  3. Определение функций с необязательными аргументами
  4. Разделение строк в Python
  5. Срез списка в Python
  6. Библиотека sh: удобные команды терминала
  7. Создание словаря с значением по умолчанию
  8. Сокращение ссылок с pyshorteners
  9. Преобразование списка в словарь через генератор
  10. Создание функций с произвольным количеством аргументов
  11. Подсказки при вводе данных в Python
  12. Фильтрация входных данных в Python
  13. Проверка типов с использованием isinstance
  14. Любовь к Python
  15. Функция enumerate() в Python
  16. Сортировка в Python
  17. Создание GUI с Tkinter: Entry
  18. Работа с множествами в Python
  19. Преобразование символов в нижний регистр
  20. Генераторы в Python
  21. Объединение строк с помощью метода join
  22. Применение функции к списку
  23. Перебор элементов списка в Python
  24. Объединение, распаковка и деструктуризация
  25. Преобразование чисел в восьмеричную строку
  26. Создание и операции с дробями
  27. Асинхронное программирование с asyncio
  28. Подсчет вхождений элементов
  29. Расчет времени выполнения
  30. Обмен значений переменных в Python
  31. Метод lt для сортировки объектов
  32. SciPy: широкий функционал для математических операций
  33. Методы работы со строками в Python
  34. Создание и использование ChainMap
  35. Генерация случайных чисел в Python
  36. Удаление элементов по срезу
  37. Поиск индекса элемента
  38. Работа с множествами в Python
  39. Генераторы данных
  40. Работа с модулем glob в Python
  41. Нахождение отличий в списках
  42. Удаление файлов с shutil.os.remove()
  43. Поток данных в Python
  44. Управление виртуальными окружениями в Python
  45. Сортировка и обратный порядок

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