Курс Python → Генераторы в Python

В Python есть концепция генераторов, которая позволяет создавать итерируемые объекты, генерируя элементы по мере необходимости. В инструкции упомянут пример с генератором, который создает массивы array_1, array_2 и array_3, а затем использует их для создания массива array_4. По логике, значения в массиве array_4 должны быть аналогичными значениям в массиве array_1.

Однако, в соответствии с PEP-289, в Python генераторы вычисляют значения немедленно только для самого внешнего выражения for, в то время как остальные выражения откладываются до момента запуска генератора. Это означает, что при использовании генераторов, значения могут быть вычислены в другом порядке, чем ожидается.

Для более ясного понимания работы генераторов в данном контексте, можно привести пример кода:


array_1 = [1, 2, 3]
array_2 = [10, 20, 30]

def gen():
    for i in array_1:
        for j in array_2:
            yield i + j

array_3 = list(gen())
array_4 = list(gen())

В данном примере, при вызове функции gen() для создания массивов array_3 и array_4, значения будут вычислены в разном порядке из-за особенностей работы генераторов. Поэтому, значения в массиве array_4 могут отличаться от ожидаемых, что объясняется принципами работы генераторов в Python.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Список методов и атрибутов
  2. Установка и использование Telegram API в Python
  3. Оператор распаковки в Python
  4. Аргумент по умолчанию
  5. Профилирование данных с Pandas.
  6. Измерение времени выполнения кода
  7. Функция с **kwargs в Python
  8. Подсчет частоты элементов с Counter
  9. Удаление первого элемента списка
  10. Установка Home Assistant
  11. Протокол управления контекстом
  12. Преобразование чисел в слова
  13. Операции с датами в Python
  14. Преобразование списка в словарь через генератор
  15. Объединение строк с помощью метода join
  16. f-строки в формате строк
  17. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  18. Установка пакетов с помощью pip
  19. Сортировка с помощью параметра key
  20. Метод __iand__ для пользовательских классов
  21. Поиск частого элемента
  22. Создание уникального проекта
  23. Основы Python за 14 дней
  24. Создание и операции с дробями
  25. Скрытие вывода данных
  26. Управление экспортом элементов
  27. Методы обработки строк в Python
  28. Удаление дубликатов из списка с помощью dict.fromkeys
  29. Генератор бросков кубиков
  30. Работа с комплексными числами в Python
  31. Работа с функцией next() в Python
  32. Работа с пакетами
  33. Определение индекса элемента списка
  34. Проверка переменных окружения в Python
  35. Проверка на истинность объектов в Python
  36. Декораторы с аргументами
  37. Работа с итераторами через срезы
  38. Работа со случайными элементами
  39. Итерации в Python
  40. Импорт и использование модулей в Python
  41. Python Метод sleep() времени
  42. Создание и обучение модели с Keras
  43. Цикл for в Python
  44. Форматирование строк в Python
  45. Работа со словарями Python
  46. Компиляция регулярных выражений

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