Курс Python → Генераторы в Python
Генераторы в Python — это функции, которые используют ключевое слово `yield` вместо `return`. Когда функция с `yield` вызывается, она возвращает объект-генератор, который можно итерировать по одному значению за раз. При каждой итерации генератор запоминает свое состояние, чтобы продолжить выполнение с того же места. Это позволяет экономить память и увеличивает производительность при работе с большими объемами данных.
Пример создания простого генератора:
def my_generator():
for i in range(5):
yield i
gen = my_generator()
for val in gen:
print(val)
В этом примере функция `my_generator` возвращает генератор, который поочередно выдает числа от 0 до 4. При каждой итерации цикла `for` будет выводиться следующее значение, не храня все значения в памяти одновременно.
Генераторы также могут быть бесконечными, если они используют цикл `while` или рекурсию. Они позволяют эффективно обрабатывать потенциально бесконечные последовательности данных, такие как потоки сетевых пакетов или событий.
Помимо создания собственных генераторов, в Python есть встроенные функции, которые возвращают генераторы. Например, функция `range()` возвращает ленивую последовательность чисел, что позволяет эффективно работать с большими диапазонами значений без необходимости хранить их все в памяти.
Использование генераторов в Python помогает сделать код более читаемым, компактным и эффективным. Они позволяют работать с данными по требованию, что особенно важно при обработке больших объемов информации или при работе с потенциально бесконечными последовательностями.
Другие уроки курса "Python"
- Установка Home Assistant
- Python Ellipsis использование
- JMESPath в Python
- Генераторы в Python
- Работа с необработанными строками
- Переопределение метода xor в Python
- Функция findall() для поиска вхождений строки
- Изменение IP-адреса в Python
- Распаковка аргументов в Python
- Показ всплывающих окон Tkinter
- Форматирование строк в Python
- Создание словарей и множеств в Python
- Ускорение обработки данных с %autoawait
- Проверка версии Python
- Работа с enumerate()
- Перевернуть список в Python
- Работа с изменяемыми коллекциями
- Группы исключений в Python
- Переопределение метода len
- Деление в Python
- Работа с WindowsPath()
- Метод pos в Python
- Расчет времени выполнения
- Работа с контекстными менеджерами
- Добавление элементов в список
- Параллельные вычисления в Python
- None в Python: использование и особенности
- Избегайте пустого списка
- Форматирование строк в Python
- Работа с модулем glob в Python
- Работа с комплексными числами
- Удаление символа из строки
- Генераторы в Python
- Удаление специальных символов
- Работа с итераторами в Python
- Сортировка элементов с OrderedDict
- Основы Python за 14 дней
- Комментарии в Python.
- Метод radd для пользовательских чисел
- Добавление элементов в список: append() vs extend()
- Создание словарей с defaultdict()
- Мониторинг работы программы Py-spy
- Оптимизация строк в Python
- Игра «Виселица» на Python















