Курс 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"
- Метод Enumerate() для списков
- EMOT преобразование эмодзи в текст
- Работа со списками
- Конкатенация списков в Python
- Подсчет элементов в списке с Counter
- Работа с библиотекой xkcd
- Сериализация данных в JSON с помощью json.dumps
- Объединение списков в Python
- Создание новых списков в Python
- Область видимости переменных
- Метод remove() для удаления элемента из списка
- Форматирование строк в Python
- Запуск внешнего кода в Jupyter
- Цикл for в Python
- Объединение итераторов
- Методы shutil для работы с файлами
- Удаление дубликатов из списка
- Работа с каталогами в Python
- Определение локальных переменных в Python
- Повторение элементов в Python
- Удаление элемента из списка в Python
- Отправка POST запроса на сервер.
- Блок else в обработке исключений
- Создание вложенных циклов for
- Настройка шрифта и цвета в Tkinter
- Структурирование данных с Pydantic
- Работа со строками в Python
- Многострочные комментарии в Python
- Комментарии в Python.
- Вычисление разности множеств в Python
- Парсинг веб-страниц с Beautiful Soup
- Отношения подклассов в Python
- Присоединение элементов коллекции
- Принципы программирования
- Фильтрация списков с itertools
- Работа с комплексными числами
- Нан-рефлексивность в Python
- Подсчет элементов в Python
- Модуль math: константы π и e
- Структуры данных в Python
- Взаимодействие с sys
- Декораторы в Python
- Создание пользовательской коллекции в Python
- Строковое представление объектов
- Фильтрация элементов с помощью islice
- Работа с датой и временем в Python















