ГЕНЕРАТОРЫ В PYTHON
В Python генераторы позволяют генерировать последовательности значений "на лету", по мере необходимости. Вместо того чтобы создавать все значения и сохранять их в памяти, генераторы генерируют значения во время выполнения программы, что может сэкономить память и ускорить выполнение.
Генераторы в Python создаются с помощью ключевого слова yield
в функции. Функция с yield
не возвращает результат, а создает объект-генератор, который может быть использован для выполнения последовательности значений. Каждый вызов next()
возвращает следующее значение в последовательности, а выполнение функции приостанавливается до следующего вызова.
Пример генератора, возвращающего бесконечную последовательность четных чисел:
def even_numbers(): n = 0 while True: yield n n += 2gen = even_numbers()print(next(gen)) # 0print(next(gen)) # 2print(next(gen)) # 4
Генераторы также могут использоваться вместо списков при манипуляции большими объемами данных, так как они не создают полный список в памяти. Пример использования генератора для фильтрации значений из итерируемого объекта:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]def even_filter(numbers): for n in numbers: if n % 2 == 0: yield neven_numbers = even_filter(numbers)for n in even_numbers: print(n) # 2, 4, 6, 8
#55. Функция-генератор. Оператор yield - Python для начинающих
48 Генераторы и итераторы. Выражения -генераторы в Python
Уроки Python casts #10 - Что такое yield
Собеседование python разработчик в мой стартап - Федор (пожелал остаться неизвестным)
Знакомимся с генераторами в python
46 Генераторы списков Python - List comprehension
Новые материалы:
- Как сделать все буквы заглавными в python
- Как сделать чтобы скрипт python работал постоянно
- Docx python разрыв страницы
- Python ввод пароля
- Авл дерево python
- Как проверить авторизован ли пользователь django
- Python data class наследование
- Python подключение к postgresql
- Как посмотреть код exe файла python
- Django сложение в шаблоне