Курс 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
- Декоратор Ajax required
- Работа с CSV файлами в Python
- Обработка исключения UnboundLocalError
- Вставка переменных в шаблоны Flask
- Метод __ilshift__ для битового сдвига влево
- Проверка вхождения подстроки
- Работа с Path в Python
- Python и Юникод: работа с цифрами
- Concrete Paths — метод .with_suffix()
- Вычисление натуральных логарифмов в NumPy
- Расширение операции побитового «и» в Python
- Сортировка с помощью параметра key
- Конкатенация строковых литералов
- Строки в Python: апострофы и кавычки
- Генератор данных в Keras
- Вложенные функции в Python
- Monkey Patching в Python
- Работа с WindowsPath()
- Работа с комплексными числами
- Различия символов в Python
- Создание списков в Python
- Сортировка в Python
- Создание директории в Python
- Добавление элементов в список
- Метод rlshift для битового сдвига
- Реализация метода __abs__ в Python
- Поиск шаблона в строке
- Мониторинг памяти с Pympler
- Проверка строки на палиндром
- Работа с timedelta в Python
- Работа с deque из collections
- Типы возвращаемых значений в Python
- Вызов функций по строке в Python.
- Объединение коллекций в Python
- Повторение элементов в Python
- Обрезка изображения с Pillow
- Методы работы со строками в Python
- Использование *args
- Конкатенация строк в Python
- Numpy: разбиение массивов
- ChainMap.new_child() — добавление нового словаря
- Приближение чисел в Python
- Подсчет элементов в Python
- Функции классификации комплексных чисел















