Курс 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. Модуль antigravity: генерация координат
  2. Monkey Patching в Python
  3. Работа со строками в Python
  4. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  5. Настройка логгера Logzero
  6. Удаление ресурса в Python
  7. Декоратор для группы пользователей в Django
  8. Быстрый поиск кода
  9. Удаление символов новой строки в Python.
  10. Работа с прокси в Python
  11. Создание задания в Cron
  12. Получение частей дроби
  13. Создание функций высшего порядка
  14. Генерация ключей RSA
  15. Добавление элемента в список.
  16. Генерация тестовых данных с factory_boy
  17. Создание уникального проекта
  18. Функция all() в Python
  19. Умножение строк и списков
  20. Списковое включение в Python
  21. Обработка ошибок в Python
  22. Сравнение строк в Python
  23. Копирование и вставка текста в Python
  24. Метод invert для побитового отрицания
  25. Определение объема памяти объекта
  26. Списки: объединение, изменение
  27. Решатель судоку на Python с pygame
  28. Разделение строки на подстроки в Python
  29. Метод get для словарей
  30. Метод pos в Python
  31. Руководство по Pymorphy2
  32. Поиск кода
  33. Названия переменных
  34. Оформление кода по PEP 8
  35. Переопределение метода __rshift__
  36. Кортежи в Python: особенности и преимущества
  37. Lambda-функция в Python: использование с map() и sum()
  38. Работа с timedelta
  39. Работа с кортежами
  40. *args и **kwargs в Python
  41. Наиболее частотные элементы с помощью Counter
  42. Работа с геоданными с помощью geopy
  43. Обновление множества в Python
  44. Построение графиков в Matplotlib
  45. Создание новых списков
  46. Открытие и запись файлов

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