Курс 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. Расширение информации об ошибке в Python
  3. Атрибуты объекта в Python
  4. Избегание изменяемых аргументов
  5. Добавление Progressbar в Python
  6. Работа со стеком в Python
  7. Именование столбцов в Python с pandas
  8. Комплексные числа в Python
  9. Условное добавление элементов в список
  10. Работа с collections в Python.
  11. Метод __irshift__ для Python
  12. Упрощение работы с JSON-данными в Python
  13. Вложенные циклы в Python
  14. OrderedDict — упорядоченный словарь
  15. Множественное присваивание в Python
  16. Логирование с Logzero
  17. Документация функции help() в Python
  18. Создание списков в Python
  19. CSV строка разделение в Python
  20. Обработка ошибок в Python
  21. Метаклассы в Python
  22. Подчеркивание в REPL
  23. Метод classmethod
  24. Преобразование регистра строк
  25. globals и locals
  26. Абстракции словарей и множеств в Python
  27. Python Метод sleep() из time
  28. Возведение в квадрат с помощью itertools
  29. Имена объектов в Python
  30. Перебор элементов списка в Python
  31. Метод rsub в Python: расширение функциональности вычитания
  32. Перемещение и удаление файлов в Python
  33. Класс Counter() для подсчета элементов
  34. Установка и использование emoji
  35. Установка random seed в Python
  36. Преобразование в float
  37. Создание генераторов
  38. Работа с байтовыми строками в Python
  39. Шаблоны и наследование в Flask
  40. Обработка исключений в Python
  41. Работа со строками в Python.
  42. Удаление символа из строки
  43. Извлечение аудио из видео
  44. Списковое включение в Python
  45. Работа с кортежами в Python

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