Курс 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"

  1. Работа с Path в Python
  2. Измерение времени выполнения кода в Python
  3. Проверка наличия элемента в списке
  4. Установка и использование Telegram API в Python
  5. Concrete Paths в Python
  6. Поиск всех индексов подстроки
  7. Подписка на SelectelNews в Twitter
  8. Бесконечная проверка в Python
  9. Определение локальных переменных в Python
  10. Combobox в Tkinter
  11. Генерация строк с .join()
  12. Безопасный доступ к значениям словаря
  13. Кортеж в Python: создание и использование
  14. Игра «Камень, ножницы, бумага» — Python
  15. Изменение объектов в Python
  16. Работа с модулем os в Python
  17. Блок else в циклах.
  18. Символ подчеркивания в Python
  19. Запуск внешнего кода в Jupyter
  20. Обновление шаблона base.html
  21. Создание спинбокса в tkinter
  22. Вычисление натурального логарифма в NumPy
  23. Работа с итераторами через срезы
  24. Фильтрация списка от «ложных» значений
  25. Установка и использование TensorFlow
  26. Управление User-Agent в Python
  27. Создание словарей и множеств в Python.
  28. Преобразование вложенного списка
  29. Перегрузка операторов в Python
  30. Создание даты из строки ISO
  31. Функции высшего порядка в Python
  32. Создание лямбда-функций
  33. Функция format() в Python
  34. Функция eval() в Python
  35. Обработка ошибки IndexError
  36. Создание генераторов
  37. Добавление кнопки в tkinter
  38. Оператор «моржа» (Walrus Operator)
  39. Метод Enumerate() для списков
  40. Печать в одной строке
  41. Профилирование данных с Pandas.
  42. Работа с IP-адресами в Python
  43. Переворот строки
  44. Создание матрицы в Python
  45. Поиск частого элемента

Marketello читают маркетологи из крутых компаний