Курс Python → Генераторы в Python
Генераторы (generators) — это мощный инструмент в Python, который позволяет эффективно обрабатывать большие объемы данных, не загружая всю информацию в память. Вместо того, чтобы хранить все значения в списке или кортеже, генератор поочередно возвращает элементы, когда они запрашиваются. Это особенно полезно, когда вам необходимо обработать большой объем данных по частям или когда вы не знаете заранее, сколько элементов будет обрабатываться.
Для создания генератора в Python используется ключевое слово yield. Когда функция содержит yield, она становится генератором, который можно вызывать итеративно. В примере выше мы создали генератор square_numbers, который возвращает квадраты чисел из переданного списка. При каждом вызове генератора он возвращает следующее значение, а не все значения сразу.
def square_numbers(nums):
for num in nums:
yield num**2
my_nums = [1, 2, 3, 4, 5]
my_generator = square_numbers(my_nums)
for num in my_generator:
print(num)
Как видно из приведенного кода, мы можем использовать генераторы в циклах, чтобы поочередно получать значения. Это позволяет экономить память и ресурсы компьютера, так как не нужно хранить все значения в памяти одновременно. Генераторы также удобны для работы с потоками данных, обработки файлов построчно и других задач, где требуется эффективное использование памяти.
Использование генераторов в Python помогает улучшить производительность программы и сделать код более читаемым и компактным. Вместо создания итераторов или временных списков, можно использовать генераторы для удобной обработки данных. Помните, что генераторы могут быть бесконечными, что позволяет обрабатывать поток данных без ограничений по объему.
Другие уроки курса "Python"
- Форматирование данных с pprint
- Управление виртуальными средами в Python
- Разделение строки с регулярными выражениями
- Работа с модулем cmath
- Оператор «not» в Python
- Участие в сообществе @selectel
- Применение промокода в Много лосося
- Оператор zip в Python
- Проверка элементов списка условием
- Оператор continue в Python
- Поиск индексов в списке
- Метод is_absolute() для PurePath
- Разделение строк в Python
- Создание новых списков через list comprehensions
- Закрытие файла в Python
- Объединение строк с помощью метода join
- Экспорт внешнего файла с помощью writefile
- Разделение строки с помощью re.split()
- Flask: создание веб-приложений
- Подробная информация о %pinfo
- Инвертирование словаря
- Руководство по использованию Colorama
- Операции со строками в Python
- PUT запрос для обновления данных
- Сортировка в Python
- Отображение графиков в Jupyter с Matplotlib
- Метод gt в Python
- Установка и обучение ChatterBot
- Библиотека sh: использование команд bash в Python
- Расчет времени выполнения кода
- Конкатенация списков в Python
- Использование html-скриптов в Jupyter Notebook
- Применение функции map() с лямбда-функциями
- Объединение словарей в Python
- Генераторы в Python
- Создание и операции с дробями
- Измерение времени выполнения кода с использованием time
- Поиск самого длинного слова в списке с использованием max()
- Открытие, чтение и закрытие файла
- Оценка выражений генератора в Python
- Удаление файлов в Python
- Экспорт данных в файл.
- Преобразование текста в нижний регистр
- Сравнение def и lambda функций в Python
- Функции min(), max(), sum()
- Форматирование данных с помощью pprint















