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

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

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


# Пример генератора, возвращающего квадраты чисел
def squares(n):
    for i in range(n):
        yield i ** 2
        
# Использование генератора в цикле
for num in squares(5):
    print(num)

Важно помнить, что генераторы в Python являются итерируемыми объектами, поэтому после того как все значения были возвращены, генератор исчерпывается и вызов функции next() на нем вызовет исключение StopIteration. Также можно использовать цикл while и обработку исключения StopIteration для обхода всех значений генератора.

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

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

Автор урока

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

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

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

  1. Генераторы в Python
  2. Функции any() и all() в Python
  3. Склеивание строк через метод join()
  4. Декораторы для регистрации функций
  5. Управление мышью и клавиатурой с Pyautogui
  6. Python Аргументы по умолчанию
  7. Удаление элементов из списка в Python
  8. Работа со строками в Python
  9. Принципы программирования
  10. Декораторы в Python
  11. Поиск уникальных и повторяющихся элементов
  12. Работа с контекстным менеджером Pool
  13. Отслеживание прогресса с tqdm
  14. Генерация тестовых данных с factory_boy
  15. Возврат нескольких значений из функции
  16. Определение локальных переменных в Python
  17. Генераторы в Python
  18. Преобразование числа в список цифр
  19. Объединение словарей в Python
  20. Оператор умножения для вектора
  21. Поиск простых чисел
  22. Скачать видео с YouTube
  23. Объединение объектов в Python
  24. Вывод переменной и строки в Python
  25. Непрерывная проверка в Python
  26. Docstring в Python
  27. Игра «Угадывание чисел»
  28. Замена символов в строке
  29. None в Python: использование и особенности
  30. Модуль itertools: эффективная работа с итераторами
  31. Считывание бинарного файла в Python
  32. Создание коллекций из выражения-генератора
  33. Работа с переменными в Python
  34. Работа с файловой системой в Python
  35. Отладка производительности Python
  36. Итерация по итерируемым объектам
  37. Декораторы с аргументами
  38. Метод difference_update() — разность множеств
  39. Метод __index__ в Python
  40. Преобразование в float
  41. Разделение строки с помощью re.split()
  42. Обработка ошибок ввода данных
  43. Сохранение и загрузка модели в PyTorch
  44. Работа с геоданными с помощью geopy
  45. Слияние словарей в Python 3.9
  46. Создание директории в Python

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