Курс 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"
- Форматирование строк в Python
- Создание графиков в терминале
- Подробная информация о %pinfo
- Основы работы с базами данных в Python
- Оптимизация памяти с slots
- Преобразование многоуровневого словаря
- Измерение времени выполнения кода
- Область видимости переменных
- Проверка типов с помощью isinstance
- Подписка на Kaspersky Team
- Статическая типизация в Python
- Метод join() для объединения строк
- Обновление и получение данных в SQLite
- Проверка однородности элементов списка
- Работа с CSV файлами в Python
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Создание вкладок с TKinter
- Явный импорт переменных
- Вычисление разности множеств в Python
- Конкатенация списков в Python
- Работа с файлами в Python
- Работа с файлами в Python
- Улучшенные подсказки для импорта в Python 3.12
- Обработка элементов в Python
- Вывод сложных структур данных с помощью pprint
- Работа с файлами и директориями в Python.
- Аргументы *args и **kwargs
- Подсчет элементов в Python
- Создание пользовательской коллекции в Python
- Проверка элемента в множестве.
- Псевдонимы в Python
- Конвертация текстовых чисел с помощью Numerizer
- Объединение словарей в Python
- Метод get для словаря
- Управление асинхронными задачами с помощью Semaphore
- Определение основы слова с showballstemmer
- Метод enumerate() в Python
- Генерация случайных чисел в Python
- Оценка точности модели
- Работа со строками
- Округление дробей в Python
- Основные функции и модули Python
- Работа с JSON данными в Python
- Переопределение метода __pow__
- Присвоение значений переменным в Python
- Проверка условий в Python















