Курс Python → Генераторные функции в Python

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

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

Одним из главных преимуществ использования генераторных функций является экономия памяти. Поскольку генераторы не хранят все элементы в памяти сразу, они позволяют эффективно обрабатывать большие объемы данных. Кроме того, генераторы могут улучшить читаемость кода и упростить его структуру, особенно при работе с большими коллекциями данных.


def filter_even_numbers(numbers):
    for number in numbers:
        if number % 2 == 0:
            yield number

even_numbers = filter_even_numbers([1, 2, 3, 4, 5, 6])
for number in even_numbers:
    print(number)

В приведенном примере мы создаем генераторную функцию filter_even_numbers, которая фильтрует четные числа из списка. Затем мы создаем объект-генератор even_numbers, который мы можем использовать для итерации по отфильтрованным значениям. При вызове функции print будут выведены только четные числа из списка.

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

Автор урока

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

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

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

  1. Закрытие файла в Python
  2. Ускорение кода с помощью векторизации
  3. Работа с NumPy.linalg
  4. Функция zip() — объединение последовательностей
  5. Модуль array: создание и использование массивов
  6. Функция zip() для объединения списков
  7. Создание и использование ChainMap
  8. Python reversed() vs срез[::-1]
  9. Экспорт данных с помощью writefile
  10. Метод gt в Python
  11. Создание Radio кнопок в tkinter
  12. Умножение строк и списков
  13. Особенности множеств в Python
  14. Проблема с изменяемыми аргументами
  15. Работа с геоданными с помощью geopy
  16. Обработка ошибок в Python
  17. Разделение строки с помощью re.split()
  18. Игра «Угадывание чисел»
  19. Переопределение унарных операторов
  20. Создание комплексных чисел
  21. Математические функции в Python
  22. Проверка списка: any() и all()
  23. Логические значения в Python
  24. Установка максимального количества цифр
  25. Измерение времени выполнения кода
  26. Объединение словарей в Python
  27. Функции в Python: создание и вызов
  28. Namedtuple в Python
  29. Нахождение самого длинного слова в списке с помощью max
  30. Функция count() в Python
  31. Генератор списка в Python
  32. Логирование с Logzero
  33. Изменение регистра данных
  34. Проверка дублей в списке.
  35. Функция enumerate() в Python
  36. Принципы программирования
  37. Использование обратной косой черты в f-строках
  38. Генераторы в Python
  39. Повторение и перенос строки
  40. Просмотр атрибутов и методов класса
  41. Сортировка данных с лямбда-функциями
  42. Поиск самого частого элемента
  43. Фильтрация списков с itertools
  44. Преобразование символов в нижний регистр
  45. Python reversed() функция
  46. Метод join() для объединения строк
  47. Транспонирование 2D-массива с помощью zip

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