Курс 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"
- Частичное совпадение пользовательского ввода в Python 3.10
- Преобразование регистра строк
- Транспонирование матрицы в Python
- Лямбда-функции для min/max
- Получение частей дроби
- Метод pos в Python
- Оператор in и not in в Python
- Обучение модели с указанием эпох
- Оператор (*) в Python
- Сортировка HTML-элементов
- Очистка вывода в Python
- Метод join() для объединения элементов строки
- История Python
- Метод rsub в Python: расширение функциональности вычитания
- Основные функции и модули Python
- Использование эмодзи в Python
- Измерение времени выполнения кода
- Справка по импортированным модулям
- Логирование с Logzero: ротация файла
- Асинхронное программирование с asyncio
- Работа с collections в Python.
- List Comprehension Tutorial
- Путь к интерпретатору Python
- Глубокое копирование объектов
- JSON-esque в Python
- Отладчик pdb: начало работы
- Работа с часовыми поясами в Python.
- Оформление кода по PEP 8
- Работа с файлами в Python
- Заказ карты Тинькофф Black
- Основные методы NumPy
- Итерация по копии коллекции
- Оптимизация памяти с __slots__
- Перевод текста с Python Translator
- Создание новых списков в Python
- Получение размера объекта с sys.getsizeof()
- Быстрый поиск кода
- Работа с контекстным менеджером Pool
- Оператор «or» в Python
- Создание виртуальной среды
- inspect в Python: анализ кода
- Разделение строки на пары ключ-значение.
- Работа с аргументами командной строки в Python
- Метод index() в Python
- Игра Виселица на Python















