Курс 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"
- Закрытие файла в Python
- Ускорение кода с помощью векторизации
- Работа с NumPy.linalg
- Функция zip() — объединение последовательностей
- Модуль array: создание и использование массивов
- Функция zip() для объединения списков
- Создание и использование ChainMap
- Python reversed() vs срез[::-1]
- Экспорт данных с помощью writefile
- Метод gt в Python
- Создание Radio кнопок в tkinter
- Умножение строк и списков
- Особенности множеств в Python
- Проблема с изменяемыми аргументами
- Работа с геоданными с помощью geopy
- Обработка ошибок в Python
- Разделение строки с помощью re.split()
- Игра «Угадывание чисел»
- Переопределение унарных операторов
- Создание комплексных чисел
- Математические функции в Python
- Проверка списка: any() и all()
- Логические значения в Python
- Установка максимального количества цифр
- Измерение времени выполнения кода
- Объединение словарей в Python
- Функции в Python: создание и вызов
- Namedtuple в Python
- Нахождение самого длинного слова в списке с помощью max
- Функция count() в Python
- Генератор списка в Python
- Логирование с Logzero
- Изменение регистра данных
- Проверка дублей в списке.
- Функция enumerate() в Python
- Принципы программирования
- Использование обратной косой черты в f-строках
- Генераторы в Python
- Повторение и перенос строки
- Просмотр атрибутов и методов класса
- Сортировка данных с лямбда-функциями
- Поиск самого частого элемента
- Фильтрация списков с itertools
- Преобразование символов в нижний регистр
- Python reversed() функция
- Метод join() для объединения строк
- Транспонирование 2D-массива с помощью zip















