Курс 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. Передача аргументов в Python
  2. Подсказки типов в Python
  3. Работа со строками в Python
  4. Создание генераторов
  5. Итерация по коллекции в Python
  6. Поиск шаблона в строке
  7. Поиск файлов по шаблону
  8. Подсчет вхождений элементов
  9. Просмотр атрибутов и методов класса
  10. Поиск частых элементов в списке
  11. Использование функции enumerate()
  12. Условные выражения в Python
  13. Запрос пароля с помощью getpass
  14. Ввод нескольких значений
  15. Форматирование строк в Python
  16. Функция reversed() в Python
  17. Обязательные аргументы в Python
  18. Создание новой даты в Python
  19. Создание тестовых данных с Faker
  20. Обработка исключений в Python 3
  21. Счетчик ссылок в Python
  22. Работа со временем в Python
  23. Форматирование строк с % в Python
  24. Очистка данных в Python
  25. Измерение потребления памяти при сортировке
  26. Загрузка постов Instagram
  27. Обработка элементов в Python
  28. Нахождение максимального значения и его индекса в списке
  29. Логирование с Logzero
  30. Установка переменной среды в Python
  31. Округление банкира в Python
  32. Работа со слайсами
  33. Непрерывная проверка в Python
  34. Ограничение ресурсов в Python
  35. Метод join() для объединения строк
  36. Работа со списками
  37. Проверка наличия элемента в списке
  38. GitHub в Telegram: подписка на уведомления
  39. Функция zip() в Python
  40. Сортировка HTML-элементов
  41. Применение команды break
  42. Работа с NumPy массивами
  43. Преобразование символов в нижний регистр
  44. Обезопасьте ввод данных
  45. Перевернуть список в Python
  46. Итерация по итерируемым объектам
  47. Удаление символа из строки
  48. Удаление элементов из списка в Python

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