Курс 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. Подсчет элементов в Python
  2. Моржовый оператор в Python 3.8
  3. Объединение словарей в Python 3.5+
  4. Лямбда-функции в Python
  5. Динамическая типизация в Python
  6. Перемешивание списка с shuffle()
  7. Новшества Flask 2.0
  8. Ускоренный импорт библиотек
  9. Управление фоновыми задачами в Python
  10. Функции map() и reduce() в Python
  11. Ускорение выполнения кода в Python
  12. Работа с типами данных в Python с помощью pydantic.
  13. Сортировка данных в Python
  14. Глобальные переменные в Python
  15. Структуры данных в Python
  16. Оператор @ для умножения матриц
  17. Проверка списка: any() и all()
  18. Конвертация коллекций в Python.
  19. Метод getitem для доступа к элементам последовательности
  20. Проверка элементов списка условием
  21. Генерация UUID в Python
  22. Функция count() в Python
  23. Создание класса очереди
  24. Модуль pprint
  25. Проверка памяти объекта
  26. Генерация случайных чисел в Python
  27. JSON-esque в Python
  28. Декораторы в Python
  29. Тернарный оператор в Python
  30. Удаление дубликатов в pandas
  31. Проверка ввода с помощью isdigit
  32. Преобразование строк в числа в Python
  33. Очистка данных с Pandas
  34. Объединение словарей в Python
  35. Поиск файлов по шаблону
  36. Основные операции с библиотекой Numpy
  37. Обработка исключений в Python
  38. Удаление ссылок в Python
  39. Библиотека funcy: удобные утилиты
  40. Обмен переменными в Jupyter
  41. Оператор break в Python
  42. Работа с OpenCV
  43. Объединение словарей в Python
  44. Работа с файлами в Python
  45. Логические значения в Python

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