Курс 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. Создание веб-приложения с Flask
  2. Определение имен функций
  3. Закрытие файла в Python
  4. Обработка исключений в Python
  5. Разбиение текста в Python
  6. inspect в Python: анализ кода
  7. Добавление элементов в список: append() vs extend()
  8. Оператор in и not in в Python
  9. Принципы SRP и OCP
  10. Именованные кортежи в Python
  11. Метод ne для сравнения объектов
  12. Обработка исключений в Python 3
  13. Python: изменяемые и неизменяемые коллекции
  14. Хранение переменных в Python.
  15. Решение переменной Шредингера
  16. Управление IP-адресами через прокси
  17. Defaultdict в Python
  18. Работа с collections в Python.
  19. Flask — веб-фреймворк Python
  20. Изменение элемента списка
  21. Форматирование даты с strftime()
  22. Метод setitem в Python
  23. Python: отличительная особенность — отступы
  24. Подписка на @SelectelNews
  25. Проверка условий: all и any
  26. Работа с GitHub в Telegram
  27. Обход словаря в Python
  28. Динамическая типизация в Python
  29. Форматирование строк в Python
  30. Работа с утверждениями в Python
  31. Установка User-Agent в Python
  32. Функция reduce() в Python
  33. Работа с часовыми поясами в Python
  34. Запуск файлового сервера
  35. Метод count() для списка
  36. Работа с zip()
  37. Отрицательные индексы списков
  38. Работа с кортежами
  39. Импорт модулей в Python 3.12
  40. Импорт объектов из модулей
  41. Различия символов в Python
  42. Преобразование регистра строк
  43. Использование html-скриптов в Jupyter Notebook
  44. Множественное наследование в Python
  45. Метод init в Python
  46. Работа с путями в Python

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