Курс 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 3.10
  2. Преобразование регистра строк
  3. Транспонирование матрицы в Python
  4. Лямбда-функции для min/max
  5. Получение частей дроби
  6. Метод pos в Python
  7. Оператор in и not in в Python
  8. Обучение модели с указанием эпох
  9. Оператор (*) в Python
  10. Сортировка HTML-элементов
  11. Очистка вывода в Python
  12. Метод join() для объединения элементов строки
  13. История Python
  14. Метод rsub в Python: расширение функциональности вычитания
  15. Основные функции и модули Python
  16. Использование эмодзи в Python
  17. Измерение времени выполнения кода
  18. Справка по импортированным модулям
  19. Логирование с Logzero: ротация файла
  20. Асинхронное программирование с asyncio
  21. Работа с collections в Python.
  22. List Comprehension Tutorial
  23. Путь к интерпретатору Python
  24. Глубокое копирование объектов
  25. JSON-esque в Python
  26. Отладчик pdb: начало работы
  27. Работа с часовыми поясами в Python.
  28. Оформление кода по PEP 8
  29. Работа с файлами в Python
  30. Заказ карты Тинькофф Black
  31. Основные методы NumPy
  32. Итерация по копии коллекции
  33. Оптимизация памяти с __slots__
  34. Перевод текста с Python Translator
  35. Создание новых списков в Python
  36. Получение размера объекта с sys.getsizeof()
  37. Быстрый поиск кода
  38. Работа с контекстным менеджером Pool
  39. Оператор «or» в Python
  40. Создание виртуальной среды
  41. inspect в Python: анализ кода
  42. Разделение строки на пары ключ-значение.
  43. Работа с аргументами командной строки в Python
  44. Метод index() в Python
  45. Игра Виселица на Python

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