Курс 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. Управление экспортом элементов
  3. Функции range() в Python
  4. Проверка индексов коллекции
  5. Очистка данных с помощью pandas
  6. Создание лямбда-функций
  7. История Python
  8. Обработка исключений с блоком else
  9. Операции с кортежами
  10. Отслеживание прогресса с tqdm
  11. Возврат нескольких значений
  12. Python: библиотеки и функции
  13. Приоритет операций в Python
  14. Упрощенный вывод данных в Python
  15. Стать Python-разработчиком
  16. Декораторы в Python
  17. Установка random seed в Python
  18. Работа с IP-адресами в Python
  19. Частичное совпадение ввода
  20. Изучение объектов с помощью dir()
  21. Преобразование текста в речь с Python
  22. Python itertools combinations() — группировка элементов
  23. Основы Python за 14 дней
  24. Поиск HTML-элементов с BeautifulSoup
  25. Участие в сообществе @selectel
  26. Преобразование Word в PDF с Spire.Doc
  27. Переопределение метода len
  28. Использование defaultdict в Python
  29. Сравнение строк в Python
  30. Декоратор total_ordering для класса Point
  31. Поиск подстроки в строке
  32. Форматирование вывода с F-строками
  33. Python Ellipsis использование
  34. Преобразование PowerPoint в PDF.
  35. Преобразование объекта в строку
  36. Глобальные переменные в Python
  37. Работа с аргументами командной строки
  38. Управление асинхронными задачами на Python.
  39. Построение графиков в Matplotlib
  40. Преобразование списка в словарь через генератор
  41. Обработка исключений
  42. Просмотр атрибутов и методов класса
  43. Порядок и длина множеств в Python
  44. Удаление элементов из списка в Python.
  45. Переворот строки с помощью срезов
  46. Метод rsub для пользовательских чисел

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