Курс 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. Форматирование данных с pprint
  2. Управление виртуальными средами в Python
  3. Разделение строки с регулярными выражениями
  4. Работа с модулем cmath
  5. Оператор «not» в Python
  6. Участие в сообществе @selectel
  7. Применение промокода в Много лосося
  8. Оператор zip в Python
  9. Проверка элементов списка условием
  10. Оператор continue в Python
  11. Поиск индексов в списке
  12. Метод is_absolute() для PurePath
  13. Разделение строк в Python
  14. Создание новых списков через list comprehensions
  15. Закрытие файла в Python
  16. Объединение строк с помощью метода join
  17. Экспорт внешнего файла с помощью writefile
  18. Разделение строки с помощью re.split()
  19. Flask: создание веб-приложений
  20. Подробная информация о %pinfo
  21. Инвертирование словаря
  22. Руководство по использованию Colorama
  23. Операции со строками в Python
  24. PUT запрос для обновления данных
  25. Сортировка в Python
  26. Отображение графиков в Jupyter с Matplotlib
  27. Метод gt в Python
  28. Установка и обучение ChatterBot
  29. Библиотека sh: использование команд bash в Python
  30. Расчет времени выполнения кода
  31. Конкатенация списков в Python
  32. Использование html-скриптов в Jupyter Notebook
  33. Применение функции map() с лямбда-функциями
  34. Объединение словарей в Python
  35. Генераторы в Python
  36. Создание и операции с дробями
  37. Измерение времени выполнения кода с использованием time
  38. Поиск самого длинного слова в списке с использованием max()
  39. Открытие, чтение и закрытие файла
  40. Оценка выражений генератора в Python
  41. Удаление файлов в Python
  42. Экспорт данных в файл.
  43. Преобразование текста в нижний регистр
  44. Сравнение def и lambda функций в Python
  45. Функции min(), max(), sum()
  46. Форматирование данных с помощью pprint

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